Я пытаюсь скомпилировать следующее тестовое приложение, используя CodeBlocks и CppUTest, однако независимо от того, что я делаю, я всегда получаю undefined reference
ошибка. Я скомпилировал CppUTest с Cygwin, в кодовых блоках я использую MinGW.
Каталог проекта просто имеет два файла, main.cpp
а также tests.cpp
Я пытаюсь получить это для компиляции.
Это main.cpp
файл:
#include "CppUTest/CommandLineTestRunner.h"int main(int ac, char** av)
{
return CommandLineTestRunner::RunAllTests(ac, av);
}
Это tests.cpp
файл:
#include "CppUTest/TestHarness.h"TEST_GROUP(FirstTestGroup)
{
};
TEST(FirstTestGroup, FirstTest)
{
FAIL("Fail me!");
}
TEST(FirstTestGroup, SecondTest)
{
STRCMP_EQUAL("hello", "world");
LONGS_EQUAL(1, 2);
CHECK(false);
}
У меня уже есть библиотеки libCppUTest.a
а также libCppUTestExt.a
Теперь я должен связать их с проектом. Для этого я попытался сделать следующее:
<CppUTest>\include\
искать каталоги для компилятора.<CppUTest>\lib\
искать каталоги для компоновщика.libCppUTest.a
а также libCppUTestExt.a
связать библиотеки. Также пробовал с полным путем к этим библиотекам.Я думаю, что проблема не в кодовых блоках, потому что я пытался с каждым найденным руководством связать библиотеки и всегда получаю undefined reference
, Я также пытался добавить их как глобальные настройки, но я получаю ту же ошибку, undefined reference
,
Есть идеи?
Как отмечает @Sreekar, проблема в том, что я использовал MinGW в кодовых блоках, а библиотеки были скомпилированы с помощью cygwin. Смена компилятора на cygwin в Codeblocks устранила проблему для меня.
Здесь описывается процесс смены компилятора на cygwin в кодовых блоках, если это необходимо:
Других решений пока нет …