我有一个使用第三方库的项目。我想限制在一个特定文件夹中与第三方库交互的所有代码。显然,这段代码(让我们称之为Foo)需要#include
这些第三方头文件。当我构建该文件夹时,我需要将其与第三方.so
文件链接。我决定将第三方内容存储在该特定文件夹的自己的include和lib目录中。像这样
fooFolder/src
fooFolder/src/Foo.cpp
fooFolder/include
fooFolder/include/Foo.h // would have #include "ThirdParty.h"
fooFolder/include/ThirdParty.h
fooFolder/lib
fooFolder/lib/ThirdParty.so
fooFolder/Makefile
我的项目会变得很大。我有自己的中央include
目录以及其他一些文件夹。
include/
include/LOTS OF FILES HERE
fooFolder/
barFolder/
现在说我Bar.cpp
中有一个barFolder
,它需要创建一个Foo
对象。 barFolder
的makefile应该只能访问中心include
目录。但是,它还需要#include "Foo.h"
。这有两个问题。首先,Foo.h
不在中央include
目录中。通过将其移动到那里可以很容易地修复它。
但第二个问题是Foo.h
需要#include "ThirdParty.h"
。我真的不想将ThirdParty.h
放在中央包含目录中,因为它感觉很乱。我想基本上将ThirdParty的东西从项目的其余部分隔离开来。
所以现在它没有建立。谁能在这帮助我?
答案 0 :(得分:0)
您可以使用已显示的结构来组织文件。在编译时,使用
-I<PROJECT_ROOT>/fooFolder/include
在命令行中。