创建共享C ++库时,安装头文件的最佳做法是什么?更具体地说,我有以下两个问题:
我正在使用具有复杂相互依赖性的标题的共享库项目,所以我只是简单地安装它们,还是有办法限制所需的标题数量?
我计划将标题安装到例如子目录/ usr / local / include以避免污染顶级目录,这是正确的做法吗?
其他信息:我真的只想提供一个库的接口。该项目是一个autotools项目,我在Makefile.am文件中使用pkginclude_HEADERS
命令将标头安装在相应的子目录中。我实际上是将这个项目从使用静态库的程序转换为共享库和链接到库的小程序。人们不太可能只使用图书馆的一小部分而不是整个图书馆。
编辑:
作为对基于意见的结束投票的回应,我也会考虑一个有效的答案,这纯粹是项目特定的,或者是品尝,并且没有公认的最佳实践,但我怀疑这是案件,或者我不会问。
答案 0 :(得分:4)
一种常见的方法是将公共头文件放在include
目录中,将其余源文件(包括hpp和cpp)放在src
目录中。例如,假设您正在处理名为foo
的项目。可能的文件层次结构如下:
foo
include
foo
x.hpp
y.hpp
src
x.cpp
y.cpp
z.cpp
z.hpp
在这种情况下,您只需将include
目录添加到包含路径,然后您就可以包含这样的公共头文件:#include <foo/x.hpp>
。
答案 1 :(得分:0)
我想分享我的想法,而我不确定我是否有正确答案:)。
A: