了解 CMake 的标头依赖管理
CMake 最初会在项目外部处理标头文件目录作为外部资源。此行为可能会导致生成的项目中出现依赖项跟踪问题。
解决方案:指定包含目录
要正确包含标头,需要两个步骤:
添加包含目录:
对最近的 CMake 版本(例如 3.0 )使用 target_include_directories:
target_include_directories(test PRIVATE ${YOUR_DIRECTORY})
对于较旧的 CMake 版本(例如、2.8.10 或之前版本,没有 target_include_directories support):
include_directories(${YOUR_DIRECTORY})
在目标源列表中包含标头文件:
要跟踪依赖项,请添加标头文件添加到源列表target:
set(SOURCES file.cpp file2.cpp ${YOUR_DIRECTORY}/file1.h ${YOUR_DIRECTORY}/file2.h) add_executable(test ${SOURCES})
示例:将标头链接到多个目标
要在多个目标之间共享标头文件:
set(HEADER_FILES ${YOUR_DIRECTORY}/file1.h ${YOUR_DIRECTORY}/file2.h) add_library(mylib libsrc.cpp ${HEADER_FILES}) target_include_directories(mylib PRIVATE ${YOUR_DIRECTORY}) add_executable(myexec execfile.cpp ${HEADER_FILES}) target_include_directories(myexec PRIVATE ${YOUR_DIRECTORY})
以上是如何在 CMake 中正确配置标头包含目录?的详细内容。更多信息请关注PHP中文网其他相关文章!