我一直在尝试使用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
答案 0 :(得分:0)
您看到链接器错误告诉您链接器可以 找不到与命令行链接器选项对应的库:
-lC:\Users\XXX\workspace\unittest-cpp-master\UnitTest++\UnitTest++.h
与链接器选项-lfoo
对应的库将调用libfoo.a
或libfoo.so
,如果您使用的是类似unix的系统,或libfoo.a
,foo.lib
或foo.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