我正在努力学习CMake,但我遇到了一点打嗝。我有一个结构有点像这样的库:
LibProj
| include
| | public1.h
| | public2.h
| library
| | public1.cpp
| | public2.cpp
现在,假设我想要一个.h文件,该文件可能与.cpp文件相关联,也可能不与我想要仅由库中的文件使用的.cpp文件相关联。也就是说,我不希望它暴露给使用该库的项目。有没有办法做到这一点?
谢谢!
答案 0 :(得分:2)
典型的解决方案是将内部资源移动到另一个目录:
LibProj
| include
| | public1.h
| internal
| | private1.h
然后只将internal
文件夹添加为库中的include目录,并确保它不会复制到install time。通常,不允许从目录中包含一个头文件但不允许另一个头文件。大多数(如果不是全部)编译器只允许指定包含目录,而不是单个包含文件。