# 父目录下的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)...
include_directories()的影响范围最大,可以为CMakelists.txt后的所有项目添加头文件目录 一般写在最外层CMakelists.txt中影响全局 target_include_directories target_include_directories()的影响范围可以自定义。如加关键子PRIVATE或这PUBLIC。 一般引用库路径使用这个命令,作为外部依赖项引入进来,target是自己项目生成的li...
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(header-dir)是一个全局包含,向下传递。什么意思呢?就是说如果某个目录的 CMakeLists.txt 中使用了该指令,其下所有的子目录默认也包含了header-dir目录。 上述例子中,如果在顶层的 cmake-test/CMakeLists.txt 中加入: include_directories(hello-world)include_directories(hello-world/hello)incl...
(2)只收集指定目录下的源文件,不包括子目录。 可以用于简化源文件的指定过程。 aux_source_directory(src MY_SOURCES) add_executable(my_executable ${MY_SOURCES}) 3. 区别 include_directories: 指定头文件搜索路径。 aux_source_directory: 自动收集指定目录下的源文件。
include_directories会对当前CMakeLists.txt文件的目标文件生效,并会通过add_subdirectory调用传递到子目录;target_include_directories则针对指定的目标文件生效。 target_include_directories对于指定目标添加的目录,有三种范围可选,PUBLIC、PRIVATE和INTERFACE。INTERFACE和PUBLIC会添加到<target>的INTERFACE_INCLUDE_DIRECTORIES属...
include_directories命令将指定的目录添加到编译器用于搜索头文件的路径中。这对于组织较大的项目非常有用...
在主项目的"CMakeLists.txt"文件中,使用target_include_directories()函数将子目录的头文件路径添加到主项目中。 这将使主项目能够访问子目录的头文件。 至于CMake的分类、优势和应用场景,CMake是一种构建工具,广泛应用于各种编程语言的项目中,包括但不限于C++、C、Python等。它的主要优势包括: ...