include()没有引入新的变量范围,而add_subdirectory()引入了。 默认情况下,这两个命令都引入了一个新的策略范围,但是可以使用NO_POLICY_SCOPE选项告诉include()命令不要这样做(add_subdirectory()没有这样的选项)。 CMAKE_CURRENT_SOURCE_DIR和CMAKE_CURRENT_BINARY_DIR变量的值在处理由include()命名的文件时不会...
当然,也可以在main.c里使用include来指定路径. 2.add_subdirectory()这个命令可以向当前工程添加存放源文件的子目录,并可以指定中间二进制和目标二进制的存放位置.add_subdirectory (src),这里指定src目录下存放了源文件,当执行cmake时,就会进入src目录下去找src目录下的CMakeLists.txt,所以在src目录下也建立一个CM...
addSubdirectoryTest.h #ifndef ADD_SUBDIRECOTRY_TEST_H_ #define ADD_SUBDIRECOTRY_TEST_H_ void test(); #endif 1. 2. 3. 4. 5. addSubdirectoryTest.cpp #include <iostream> #include "addSubdirectoryTest.h" void test() { std::cout << "子项目测试" << std::endl; } 1. 2. 3. 4. 5...
add_subdirectory允许你在一个大型项目中包含多个子项目或子目录,从而实现项目的模块化管理。基本用法 add...
add_executable(Project project.c) CMakeLists样例: 对于多层级目录可以使用add_subdirectory语句包括多个应用或者库。CMake在编译的时候会把所有CMakeLists整合(组合)进行编译。add_subdirectory类似#include效果。 CMakeList.txt # At least this cmake version is needed ...
通过add_subdirectory()进入新的 CMakeLists.txt 具有独立的变量作用域。 通过include 导入的.cmake 文件没有独立的变量作用域。 自定义函数具有独立的变量作用域。 自定义的宏没有独立的变量作用域。 普通变量对子作用域可见,但是子作用域中的变量不会影响到父作用域,相当于定义了同名变量并覆盖,除非使用 PARENT_...
#include <string> void test(std::string str); # sub/CMakeLists.txt cmake_minimum_required(VERSION 3.10.2) project(sub) add_library(sub test.cpp) 场景1:父目录CMakeLists.txt的add_subdirectory只指定了source_dir。 # 父目录下的CMakeLists.txt ...
先来窥探下CMakeCache.txt的构成,CmakeCache.txt由两部分构成:External Cache Entries和Internal Cache Entries。而CMakeCache.txt是由解析器Parser生成。解析器的匹配器找到各种token。CMakeLists也可以解析外部的CMake语法,他是由“include” 或者“add_subdirectory”包含进来,两者的区别后面会说到。
add_subdirectory(folder2) add_subdirectory(folder3) 文件夹3 CMakeLists.txt 1 2 3 4 5 6 7 8 9 10 11 # 创建 folder3 的可执行文件(假设 C.cpp 是主函数) add_executable(main C.cpp) message(STATUS "项目根目录: " ${CMAKE_SOURCE_DIR}) # 指定 main 可执行文件的包含目录,包括根目录${...
首先添加要包含的目录:target_include_directories(test PRIVATE ${YOUR_DIRECTORY})如果您在没有支持的...