我一直在尝试使用UnitTest++进行单元测试。我正在使用。
我遵循了项目->属性->C/ C++构建->工具设置,并在GCC "C:\Users\XXX\workspace\unittest-cpp-master\UnitTest++“编译器(包括选项)和"C:\Users\XXX\workspace\unittest-cpp-master\UnitTest++\UnitTest++.h”in MinGW C++链接器(库选项)中包括了完整路径C++
当我构建源代码时,它会给出错误。
找不到-lC:\Users\XXX\workspace\unittest-cpp-master\UnitTest++\UnitTest++.h
对如何修复它有什么建议吗?提亚
发布于 2015-07-17 19:09:17
您正在看到一个链接器错误,它告诉您链接器无法找到与命令行链接器选项相对应的库:
-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++。此设置将生成命令行链接器选项:
-lUnitTest++当您构建时,链接器将在它应该搜索库的目录中搜索匹配的库文件。
默认情况下,链接器将在几个默认目录中搜索库,这取决于您的类unix或Windows系统。如果您还没有在其中一个位置安装您的UnitTest++库,那么还需要告诉链接器它应该在哪里搜索这个库的目录的名称。因此,例如,如果您的UnitTest++库是:
C:\Users\XXX\workspace\unittest-cpp-master\lib\UnitTest++.a然后您需要在IDE中做进一步的设置。导航到项目的Properties -> C++ Build -> Settings -> C++ Linker -> LibraryE 222 -> E 123库搜索路径e 224,并添加C:\Users\XXX\workspace\unittest-cpp-master\UnitTest++。此设置将生成命令行链接器选项:
-LC:\Users\XXX\workspace\unittest-cpp-master\lib当你建造的时候。
如果您使用IDE这样的Eclipse来控制GNU构建工具,而根本不了解命令行工具是如何工作的以及它们操作的文件类型,那么恐怕您肯定会犯这样的错误:这是一种非常快速的治疗方法。,如果它导致您误入歧途地与MinGW GCC一起工作,那么请参阅MinGW文档和/或GCC文献
https://stackoverflow.com/questions/31444213
复制相似问题