1. include_directories
语法
include_directories ([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...])
作用
将指定目录添加到编译器的头文件搜索路径之下,指定的目录被解释成当前源码路径的相对路径。
参数
默认情况下,include_directories命令会将目录添加到列表最后,可以通过命令设置CMAKE_INCLUDE_DIRECTORIES_BEFORE变量为ON来改变它默认行为,将目录添加到列表前面。也可以在每次调用include_directories命令时使用AFTER或BEFORE选项来指定是添加到列表的前面或者后面。如果使用SYSTEM选项,会把指定目录当成系统的搜索目录。该命令作用范围只在当前的CMakeLists.txt。
2.target_include_directories
语法
target_include_directories(<target> [SYSTEM] [AFTER|BEFORE] <INTERFACE|PUBLIC|PRIVATE> [items1...] [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])
作用
该命令可以指定目标(exe或者so文件)需要包含的头文件路径,命名为 < target > 的命令必须是由 add _ executable ()或 add _ library ()之类的命令创建的,并且不能是 ALIAS 目标。
参数
PUBLIC:对内对外都公开,可将头文件目录以及链接库传递给连接者,target对应的头文件、源文件都使用。
PRIVATE:对内公开,对外不公开,不可传递头文件目录以及链接库,target对应的源文件使用。
INTERFACE:对外公开,对内不公开,可传递头文件目录以及链接库,但内部不可使用头文件及连接库,只能接口传递,target对应的头文件使用。
原文链接:https://blog.csdn.net/qq_26849933/article/details/127131908
使用 include_directories导入的头文件路径是全局的,而使用 target_include_directories导入的头文件路径则是保存在target中,其它模块需要使用时,引入此target即可。
标签:...,头文件,target,directories,命令,include From: https://www.cnblogs.com/linxisuo/p/18172276