CMake的几种Include

CMake的几种Include

include_directories()
target_include_directories()
add_executable( xx.cpp xx.h)
这三种方式都可以对当前项目添加引用路径。

include_directories()添加的范围大,target_include_directories()范围的范围可以自定义。如加关键子PRIVATE。一般引用库路径使用这个命令,作为外部依赖项引入进来,target一般是自己项目生成的lib。add_executable( )中添加的引用路径一般是当前目录下的源文件对应的头文件。

嵌套头文件的引用问题。
在子项目中,include的用法可以帮助当前环境找到头文件,但在外部的项目引用子项目时,子项目中的include的相关命令对外部项目无效,外部项目的引用只与他自己的include命令相关,因此,在子项目中的源文件中尽量使用绝对路径的文件。且在子项目的CMakeLists中尽量不要使用include_directories,因为它只针对子项目,外部项目没接受到include的文件,就会报引入错误。
如:
错误示范:
子项目:
include_directories(“../OrthophotoCU”)
源文件:
#include “global.h”
正确示范:
子项目:不加引入路径
源文件:
#include “../OrthophotoCU/global.h”
这样外部项目引入子项目时,就可以根据子项目的路径找到相对位置的头文件了。如果是错误情况,引入了子项目头文件,在子项目的相对路径下没有”global.h”。

你可能感兴趣的:(CMake)