参考官网:
https://cmake.org/cmake/help/latest/command/target_include_directories.html
存在两个工程的时候,如果A工程引用B工程,且A工程的的文件引用了B工程的头文件,而B工程本身的头文件也是有其他引用。这时候,不希望在A工程内还要小心翼翼的把B工程内的各种关联头文件的路径这些还要指定一遍,因为这个在B工程肯定已经做了。
希望的就是A工程只要用到了B工程的某个模块,那么这个模块的关联的头文件、库,都可以自动的被包含进来,A工程只需要指定,依赖这个模块即可。
对于头文件来说,target_include_directories这个指令就可以达到解决头文件的路径的引用问题。
如有一个算法模块:
######### ---- app -------- #####
add_library(algorithm
SHARED
app/algorithm.cpp
)
target_link_libraries(algorithm
inner_A_module
inner_B_module
)
target_include_directories(map_fusion
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/src/

文章介绍了在CMake中如何使用target_include_directories和target_link_libraries命令来管理项目间的头文件引用和库依赖。当一个工程依赖另一个工程时,可以通过设置PUBLIC、PRIVATE和INTERFACE属性来控制头文件目录的可见性,确保依赖的模块及其关联头文件能正确被包含。同时,使用INSTALL_INTERFACE和BUILD_INTERFACE可以指定编译时和安装后的头文件路径。
最低0.47元/天 解锁文章
1469

被折叠的 条评论
为什么被折叠?



