我正在尝试使用CodeBlocks和CppUTest编译下面的测试应用程序,但是无论我做什么,我总是得到undefined reference错误。我用cygwin编译了CppUTest,在代码块中我使用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。
有什么想法吗?
发布于 2015-12-01 22:28:31
正如@Sreekar所指出的,问题是我在代码块中使用了MinGW,并且库是用cygwin编译的。将编译器更改为Codeblocks中的cygwin为我解决了这个问题。
这描述了在需要时在代码块中将编译器更改为cygwin的过程:
https://stackoverflow.com/questions/34030788
复制相似问题