0

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

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

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

我认为问题不在于代码块,因为我已经尝试使用我找到的所有指南来链接库,并且我总是得到undefined reference. 我也尝试将这些添加为全局设置,但我得到了同样的错误,undefined reference.

有任何想法吗?

4

1 回答 1

0

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

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

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

于 2015-12-01T22:28:31.443 回答