说我正在写一个库,foo。在我的库源文件中,我想以与我的库用户相同的方式包含标题:
#include <foo/bar.hpp>
// code defining bar methods here
例如,在增强中,增强中的其他标题以这种方式完成,例如, <boost/shared_ptr.hpp>
,而不是相对引用的"../shared_ptr.hpp"
样式。我看了一些其他库如何实现这一点,看起来他们在文件布局中添加了一个冗余目录,以便进行此操作,例如:增强代码位于“boost_1_4_1 / boost”而非“boost_1_4_1 /”。
如果您已使用现有布局进行源代码管理,则切换到该方案会很烦人。 GNU make将其分层的最佳方法是什么?我唯一的想法是添加一个目标,所有构建目标依赖于该目标,在我的源代码树中创建一个带有符号链接的隐藏文件夹,并将该隐藏文件夹添加到包含路径。也许有一种不太混淆的方式?
答案 0 :(得分:0)
你难道不能为你的Makefile使用INC选项的-I gcc键吗?
GCC
gcc -c -I / home / joseph / dev / foo / headers
生成文件:
INC=-I/home/joseph/dev/foo/headers
在这种情况下,您只有一个地方可以进行此更改,Makefile。