单元测试++和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