与环境变量不同的是,缓存变量是CMake进程在配置阶段收集相关信息后存储在在构建树中的CMakeCache.txt 文件中的变量,缓存变量不可像环境变量中在脚本使用但是可以通过cmake-gui或者ccmake来声明。 Cache Variable缓存变量相当于一个全局变量,在同一个CMake工程中任何地方都可以使用,比如父目录,子目录等,而如上文中...
set(<variable> <value>... CACHE <type> <docstring> [FORCE]) <variable>: 要设置的变量的名称。 <value>...: 变量的值。可以是一个或多个值,用空格分隔。如果只有一个值,可以直接写在<value>位置;如果有多个值,可以列出多个值。 CACHE <type>: 将变量缓存起来,以便在后续的CMake运行中保留该变量的...
Cache 变量 CMAKE_INSTALL_PREFIX 默认值是 /usr/local (可以在生成的 CMakeCache.txt 文件中查看),这时候如果我们 在某个 CMakeLists.txt 中,仍然使用 set(CMAKE_INSTALL_PREFIX "/usr"),那么此时我们 install 的时候,CMake 以后面的 /usr 作为 CMAKE_INSTALL_PREFIX 的值,这是因为 CMake 规定,有一个...
图3、CMakeCache.txt的内部输入变量 2.2 生成阶段 在生成阶段,cmake使用了一套语法解析系统,关键的类图如下。cmMakefile对象存错了CMakeLists.txt的所有输入变量。解析器使用了lex/yacc语法解析器,执行构建动作。cmCommand定义了命令的执行动作,并且该动作的注释在代码也有注释。这些关键类 是抽象类,CMake的跨平台实...
可以使用set命令向列表变量中添加元素。具体来说,可以使用set(SRC_FILES ${SRC_FILES} util.cpp)命令将util.cpp添加到SRC_FILES列表的末尾。其中,${SRC_FILES}表示取出SRC_FILES变量的当前值。这个命令还可以使用其他的set命令选项,如CACHE和APPEND等。
因为cmake会生成一些中间文件(CMakeFiles,CMakeCache.txt, cmake_install.cmake, Makefile),所以最好在项目源代码目录重新建一个文件夹存放生成的中间文件,即外部编译。在中间文件夹中依次执行编译指令cmake ..,make,那么编译器会按照生成的Makefile中的指令编译C++工程。如果要对编译的结果清理,使用make ...
包括:CMakeCache.txt、CMakeFiles、cmake_install.cmake、Makefile等中间文件。 指令:make PS:可以使用make VERBOSE=1来查看make构建的详细过程。 这个时候已经生成了hello. 指令:./hello 以上是cmake构建的全部过程。 3、详细解释 对CMakeLists.txt的详细解释: PROJECT(projectname [CXX] [C] [Java]) 用这个...
set(<variable> <value>... CACHE <type> <docstring> [FORCE]) set(ENV{<variable>} [<value>]) 使用样例: set(CMAKE_CXX_COMPILER D:/MinGW/bin/g++) (4) file 含义:定义对文件系统的文件和路径的操作,可以结合Linux指令对文件的操作去理解。
rm -rf CMakeFiles CMakeCache.txt cmake_install.cmake Makefile main 在之前的目录下添加2个文件,testFunc.c和testFunc.h: touch testFunc.c testFunc.h 添加完后整体文件结构如下: testFunc.c /* ** testFunc.c */ #include <stdio.h>