单元测试++和g ++ - 图书馆

问题描述:

我试图让单元测试++项目中的合作下,该目录树的相对路径:单元测试++和g ++ - 图书馆

Project/ 
|-- src/ 
|-- test/ 
| |-- test.cpp 
|-- unittest-cpp/ 
| |-- UnitTest++/ 
|  |-- libUnitTest++.a 
|  |-- src/ 
|   |-- UnitTest++.h 
|-- Makefile 

我试图用克至++编译,同时在项目目录。我的test.cpp文件包含了UnitTest ++入门代码。

我试过如下:

g++ -Lunittest-cpp/UnitTest++/ -lUnitTest++ -Iunittest-cpp/UnitTest++/src/ \ 
test/test.cpp -o Test 

如果我没理解好,-L是给路径静态库。 -l(小L)用于库名,-I(Capital i)用于包含路径。

我得到两个不同的结果。它要么告诉我它无法在/ usr/bin /中找到lib或者它告诉我有对unittest :: *的未定义引用。

是因为我给了一个它无法编译的库的相对路径吗?我是通过多个目录使用g ++的新手,我试图理解它是如何工作的,然后才能在我的Makefile中工作。

[编辑]:链接库和头之前,必须给出test/test.cpp参数。所以,这工作:

g++ test/test.cpp -Lunittest-cpp/UnitTest++ -lUnitTest++ -Iunittest-cpp/UnitTest++/src -o Test 

要编译的文件(在此上下文test.cpp)必须先提供其依赖项编译时。这工作:

g++ test/test.cpp -Lunittest-cpp/UnitTest++ -lUnitTest++ -Iunittest-cpp/UnitTest++/src -o Test