# 父目录下的CMakeLists.txt cmake_minimum_required(VERSION 3.10.2) project(test) include_directories(sub) add_subdirectory(sub output) add_executable(test main.cpp) target_link_libraries(test sub) # 父目录下的main.cpp #include "test.h" #include <iostream> int main(int argc, char** argv)...
2.1.10 target_include_directories 作用:指定 target 包含的头文件路径(相当于指定g++编译器-I参数) 语法:target_include_directories(target [INTERFACE|PUBLIC|PRIVATE] dir1 dir2 …) 其中,target为库文件或可执行文件 PRIVATE:私有的 INTERFACE:接口 PUBLIC:PUBLIC = PRIVATE + INTERFACE # 指定可执行文件main的...
include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...]) 该命令主要是将目录添加到编译器的头文件的搜索目录之下,具体介绍见这里。执行该命令后,会将指定的目录添加到当前CMakeLists.txt文件的INCLUDE_DIRECTORIES目录属性和INCLUDE_DIRECTORIES目标文件属性中。接下来看一个实例,看include_directories添加目录...
include_directories 会为当前CMakeLists.txt的所有目标,以及之后添加的所有子目录的目标添加头文件搜索路径。因此,慎用target_include_directories,因为会影响全局target。 target_include_directories 只会为指定目标包含头文件搜索路径。如果想为不同目标设置不同的搜索路径,那么用target_include_directories更合适。 参考 h...
include_directories: 指定头文件搜索路径。 aux_source_directory: 自动收集指定目录下的源文件。 当你需要为编译器指定额外的头文件搜索路径时,使用include_directories。 当你想要自动获取一个目录下所有的源文件,而不需要手动列出它们时,使用aux_source_directory。
问题的根源不是target_include_directories命令本身,而是试图install源路径中带有公共或接口包含目录前缀的...
1. include_directories:当前CMakeList.txt中的所有目标以及所有在其调用点之后添加的子目录中的所有目标将具有此头文件搜索路径 2. target_include_directories:指定目标包含的头文件路径。 include_directories 语法 1 include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 …]) ...
include_directories会对当前CMakeLists.txt文件的目标文件生效,并会通过add_subdirectory调用传递到子目录;target_include_directories则针对指定的目标文件生效。 target_include_directories对于指定目标添加的目录,有三种范围可选,PUBLIC、PRIVATE和INTERFACE。INTERFACE和PUBLIC会添加到<target>的INTERFACE_INCLUDE_DIRECTORIES属...
问题的根源不是target_include_directories命令本身,而是试图install源路径中带有公共或接口包含目录前缀的...
include_directories(${CMAKE_SOURCE_DIR}/../lib) 上面CMAKE_SOURCE_DIR变量我们在上面讲变量的时候有提到过,可以理解为CMakeLists.txt所在的目录,当然这个变量也是可以通过set命令设置的。 修改后的CMakeLists.txt如下: cmake_minimum_required(VERSION 3.15) ...