使#include <header.h>仅对其自己的库</header.h>可见

时间:2012-05-08 11:39:30

标签: c++ include

是否可以隐藏

#include <header.h>  //from library B

来自使用库A?

的项目

我需要保留包含在那里,因为否则我的库A不会编译,但由于该标题来自其他库B,对于主项目不应该是可见的,主程序试图找到header.h和编译失败。

1 个答案:

答案 0 :(得分:1)

您可以将其放在#ifdef内并仅在编译库A时定义符号:

#ifdef INCLUDE_FROM_LIBRARY_B
#include <header.h>  //from library B
#endif //INCLUDE_FROM_LIBRARY_B

更新:但可能最好的选择是@ Robinson的建议:不要将它包含在任何头文件中,只在需要时才包含在.cpp文件中。