我正在尝试使用CodeBlocks和CppUTest编译以下测试应用程序,但无论我做什么,我总是得到undefined reference
错误。我使用cygwin编译了CppUTest,在使用MinGW的代码块中。
项目目录只有两个文件main.cpp
和tests.cpp
,我试图让它编译。</ p>
这是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
添加到链接库。还尝试了这些库的完整路径。我认为问题不是Codeblocks,因为我已经尝试了我发现的每个指南链接库,我总是得到undefined reference
。我也尝试将这些添加为全局设置,但我得到了相同的错误undefined reference
。
有什么想法吗?
答案 0 :(得分:0)
正如@Sreekar所指出的那样,问题在于我在代码块中使用MinGW而且库是用cygwin编译的。在Codeblocks中将编译器更改为cygwin为我解决了这个问题。
这描述了在需要时将编译器更改为cygwin的过程: