Codeblocks和CppUTest,未定义的引用

时间:2015-12-01 21:45:11

标签: c++ tdd codeblocks cpputest

我正在尝试使用CodeBlocks和CppUTest编译以下测试应用程序,但无论我做什么,我总是得到undefined reference错误。我使用cygwin编译了CppUTest,在使用MinGW的代码块中。

项目目录只有两个文件main.cpptests.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.alibCppUTestExt.a,现在我必须将它们链接到项目中。为此,我尝试了以下内容:

  • 在构建选项中,将<CppUTest>\include\添加到编译器的搜索目录中。
  • 在构建选项中,将<CppUTest>\lib\添加到链接的搜索目录中。
  • 在链接设置中,将libCppUTest.alibCppUTestExt.a添加到链接库。还尝试了这些库的完整路径。

我认为问题不是Codeblocks,因为我已经尝试了我发现的每个指南链接库,我总是得到undefined reference。我也尝试将这些添加为全局设置,但我得到了相同的错误undefined reference

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

正如@Sreekar所指出的那样,问题在于我在代码块中使用MinGW而且库是用cygwin编译的。在Codeblocks中将编译器更改为cygwin为我解决了这个问题。

这描述了在需要时将编译器更改为cygwin的过程:

https://www.youtube.com/watch?v=oVmd0P85D8o

相关问题