Eclipse无法找到UnitTest ++库

时间:2015-07-16 02:02:47

标签: c++ eclipse gcc mingw

我一直在尝试使用UnitTest ++进行单元测试。我正在使用Eclipse Mars IDE。

我已按照Project-> Properties-> C / C ++ Build->工具设置并包含完整路径" C:\ Users \ XXX \ workspace \ unittest-cpp-master \ UnitTest ++ "在GCC C ++编译器(包括选项)和" C:\ Users \ XXX \ workspace \ unittest -cpp-master \ UnitTest ++ \ UnitTest ++。h"在MinGW C ++链接器(库选项)

当我构建源代码时,它会给出错误

  

找不到-lC:\ Users \ XXX \ workspace \ unittest-cpp-master \ UnitTest ++ \ UnitTest ++。h

有关如何修复它的任何建议? TIA

1 个答案:

答案 0 :(得分:0)

您看到链接器错误告诉您链接器可以 找不到与命令行链接器选项对应的库:

-lC:\Users\XXX\workspace\unittest-cpp-master\UnitTest++\UnitTest++.h

与链接器选项-lfoo对应的库将调用libfoo.alibfoo.so,如果您使用的是类似unix的系统,或libfoo.afoo.libfoo.dll 如果你在Windows上。

当然,这些可能性都不会产生任何存在文件的名称 在您的计算机上,如果您替换C:\Users\XXX\workspace\unittest-cpp-master\UnitTest++\UnitTest++.h foo

你犯了一个或两个错误:

您添加了头文件C:\Users\XXX\workspace\unittest-cpp-master\UnitTest++\UnitTest++.h的名称, 作为链接库。头文件对链接器没有任何意义。链接库是二进制文件 包含链接器可以与其他二进制文件组合以生成程序的已编译代码。该 您需要链接的库是UnitTest++。此设置将生成命令行 linker 选项:

-lUnitTest++

构建时,链接器将在目录中搜索匹配的库文件 它应该在哪里搜索图书馆。

默认情况下,链接器将在几个默认目录中搜索库,具体取决于 您的unix-like或Windows系统。如果你还没有在其中一个中安装你的UnitTest ++库 那些地方然后你还需要告诉链接器它应该搜索这个库的目录的名称。 因此,例如,如果您的UnitTest ++库是:

C:\Users\XXX\workspace\unittest-cpp-master\lib\UnitTest++.a

然后您需要在IDE中进行进一步设置。导航到项目的属性 - > C ++ Build - > 设置 - > GCC C ++链接器 - > 图书馆 - > 图书馆搜索路径, 并添加C:\Users\XXX\workspace\unittest-cpp-master\UnitTest++。此设置将生成 命令行链接器选项:

-LC:\Users\XXX\workspace\unittest-cpp-master\lib

当你建立。

如果您使用IDE这样的Eclipse来控制GNU构建工具而基本不了解如何 命令行工具的工作原理以及它们运行的​​文件类型,我担心你肯定会这样做 犯下这样的错误:here is very quick cure for that. 如果它导致您误用MinGW GCC,请参阅the MinGW documentation和/或the GCC documentation