【发布时间】:2016-11-18 07:46:38
【问题描述】:
假设我正在发布一个 C++ 库,它的包含文件位于名为 api 的文件夹中。
// file: api/mylib/fwd/foo.h
inline int mylib_foo();
// file: api/mylib/impl/foo.h
inline int mylib_foo() { return 42; }
在this question 的上下文中,是否建议库构建者始终使用他们自己的 (api) 包含文件的“完整路径”?
// file: api/mylib/all.h
#include "mylib/fwd/foo.h" // as opposed to "fwd/foo.h"
#include "mylib/impl/foo.h" // as opposed to "impl/foo.h"
或者依赖预处理器“经常”首先搜索包含文件夹这一事实是否可以接受?
如果您不想将/home/xtofl/libs/mylib/api 添加到编译器的包含路径而是... #include "/home/xtofl/libs/mylib/api/mylib/all.h",或者甚至只是将 mylib 放在客户端代码旁边。
// file: api/mylib/all.h
#include "fwd/foo.h"
#include "impl/foo.h"
【问题讨论】:
标签: c++ shared-libraries c-preprocessor header-files include-path