我正在开发 C++ 头文件库,我们称之为PROJ。当一个库头包含另一个时,它使用:
#include <proj/foo.h>
并且编译器(gcc 和 clang)有-I path-to-proj-parent
. 图书馆的用户在他们的包含搜索路径中也应该有PROJ的父级。
我使用此方案的合理性是,将此库安装到proj
默认可搜索父级(/usr/include/proj
或/usr/local/include/proj
)的子目录后,库用户无需指定-I
选项。
这个方案有缺点吗?使用<foo.h>
不带proj/
前缀是更传统和推荐的方式吗?
问题不在于是否安装在子目录中(会有proj
子目录),而是如何引用包含文件。