└── CMakeLists.txt #子目录的CMakeLists.txt └── test.h #子目录头文件 └── test.cpp #子目录源文件 1. 2. 3. 4. 5. 6. 子目录sub下的test.cpp定义了一个函数test(),将输入参数打印出来,相应的头文件test.h则对test()进行声...
include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...]) 该命令主要是将目录添加到编译器的头文件的搜索目录之下,具体介绍见这里。执行该命令后,会将指定的目录添加到当前CMakeLists.txt文件的INCLUDE_DIRECTORIES目录属性和INCLUDE_DIRECTORIES目标文件属性中。接下来看一个实例,看include_directories添加目录...
include_directories(${PROJECT_SOURCE_DIR}/include) # 这里将子目录条件到工程,并指定编译的输出产物,默认输出产物保存到build/src文件夹下, # 如果不指定可行文件保存路径同样也会保存到该路径下 add_subdirectory(src) # 上面定义了将src子目录加入工程,并指定编译输出(包含编译中间结果)路径为 # bin目录。如果...
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等。它的主要优势包括: ...