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