Eclipse 找不到 UnitTest++ 库

Eclipse Cannot find the UnitTest++ library

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

我遵循了 Project->Properties->C/C++ Build->Tool Settings 并在 GCC C++ 编译器(包括选项)和 "C:\Users\XXX\workspace\unittest-cpp-master\UnitTest++\UnitTest++.h" 中包含了完整路径 "C:\Users\XXX\workspace\unittest-cpp-master\UnitTest++"在 MinGW C++ 链接器中(库选项)

当我构建源代码时,出现错误

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

关于如何修复它有什么建议吗? TIA

您看到一个 linker 错误,告诉您 linker 可以 找不到与命令行 linker 选项相对应的库:

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

对应于 linker 选项 -lfoo 的库将调用 libfoo.alibfoo.so,如果您使用的是类 unix 系统,或 libfoo.afoo.libfoo.dll 如果你在 Windows.

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

你犯了一个或者两个错误:

您添加了头文件的名称,C:\Users\XXX\workspace\unittest-cpp-master\UnitTest++\UnitTest++.h, 作为 link年龄库。头文件对linker 没有任何意义。 linkage 库是一个二进制文件 包含编译后的代码,linker 可以将这些代码与其他二进制文件结合起来制作程序。这 您需要 link 的图书馆是 UnitTest++。此设置将生成命令行 linker 选项:

-lUnitTest++

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

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

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

那么您需要在IDE中做进一步的设置。导航到项目的 Properties -> C++ Build -> Settings -> GCC C++ 链接器 -> -> 库搜索路径, 并添加 C:\Users\XXX\workspace\unittest-cpp-master\UnitTest++。此设置将生成 命令行 linker 选项:

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

构建时。

如果你使用 IDE 这样的 Eclipse 来控制 GNU 构建工具,而没有基本了解如何 命令行工具的工作原理以及它们对哪些类型的文件进行操作,那么恐怕您肯定会 犯这样的错误:here is very quick cure for that. 如果它让您在使用 MinGW GCC 时误入歧途,请参考 the MinGW documentation and/or the GCC documentation