大约一年前,我询问了 CMake 中的标头依赖项。
我最近意识到问题似乎是 CMake 认为这些头文件是项目 外部 的。至少,在生成 Code::Blocks 项目时,头文件不会出现在项目中(源文件会出现)。因此,在我看来,CMake 认为这些标头是项目 外部 的,并且不会在依赖项中跟踪它们。
在 CMake 教程中的快速搜索只指向 include_directories
这似乎没有做我希望的事情……
向 CMake 发出信号表明特定目录包含要包含的标头以及应由生成的 Makefile 跟踪这些标头的正确方法是什么?
原文由 Matthieu M. 发布,翻译遵循 CC BY-SA 4.0 许可协议
必须做两件事。
首先添加要包含的目录:
如果您使用非常旧的 CMake 版本(2.8.10 或更早版本)而不支持
target_include_directories
,您也可以使用旧版include_directories
代替:然后,您还必须将头文件添加到当前目标的源文件列表中,例如:
这样,头文件将在 Makefile 中显示为依赖项,例如在生成的 Visual Studio 项目中(如果您生成一个)。
如何将这些头文件用于多个目标: