变量

简介: 变量

我们可以使用 SET(set) 来定义变量,语法如下:

SET(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])点击复制复制失败已复制


示例:

SET (SRC_LST main.c other.c)点击复制复制失败已复制


说明:用变量代替值,例子中定义 SRC_LST 代替后面的字符串。


我们可以使用 ${NAME} 来获取变量的名称。


常用变量

环境变量名 描述
CMAKE_BINARY_DIR
PROJECT_BINARY_DIR
<projectname>_BINARY_DIR
如果是 in source 编译,指得就是工程顶层目录,如果是 out-of-source 编译,指的是工程编译发生的目录。 PROJECT_BINARY_DIR 跟其他指令稍有区别。现在,你可以理解为他们是一致的。
CMAKE_SOURCE_DIR
PROJECT_SOURCE_DIR
<projectname>_SOURCE_DIR
工程顶层目录。
CMAKE_CURRENT_SOURCE_DIR 当前处理的 CMakeLists.txt 所在的路径。
CMAKE_CURRRENT_BINARY_DIR 如果是 in-source 编译,它跟 CMAKE_CURRENT_SOURCE_DIR 一致;如果是 out-of-source 编译,他指的是 target 编译目录。
EXECUTABLE_OUTPUT_PATH
LIBRARY_OUTPUT_PATH
最终目标文件存放的路径。
PROJECT_NAME 通过 PROJECT 指令定义的项目名称。


系统信息

系统信息变量名 描述
CMAKE_MAJOR_VERSION CMAKE主版本号,比如 2.4.6 中的 2
CMAKE_MINOR_VERSION CMAKE次版本号,比如 2.4.6 中的 4
CMAKE_PATCH_VERSION CMAKE补丁等级,比如 2.4.6 中的 6
CMAKE_SYSTEM 系统名称,比如 Linux-2.6.22
CMAKE_SYSTEM_NAME 不包含版本的系统名,比如 Linux
CMAKE_SYSTEM_VERSION 系统版本,比如 2.6.22
CMAKE_SYSTEM_PROCESSOR 处理器名称,比如 i686
UNIX 在所有的类 UNIX 平台为 TRUE ,包括 OS Xcygwin
WIN32 在所有的 win32 平台为 TRUE ,包括 cygwin


编译选项

编译控制开关名 描述
BUILD_SHARED_LIBS 使用 ADD_LIBRARY 时生成动态库
BUILD_STATIC_LIBS 使用 ADD_LIBRARY 时生成静态库
CMAKE_C_FLAGS 设置 C 编译选项, 也可以通过指令 ADD_DEFINITIONS() 添加。
CMAKE_CXX_FLAGS 设置 C++ 编译选项, 也可以通过指令 ADD_DEFINITIONS() 添加。
目录
相关文章
|
5月前
|
存储 C++
6变量
6变量
42 1
|
5月前
|
C++
c++常见变量
c++常见变量
40 0
|
5月前
|
存储 Unix 编译器
变量和常量
这篇内容介绍了编程中的变量概念和使用。变量是可变的存储单元,用于存放数据,其值在程序运行期间可以改变。变量需先定义后使用,声明时指定类型,如`类型关键字 变量名;`。变量可分为局部变量(在代码块内定义)和全局变量(代码块外),全局变量在整个程序中可见,局部变量只在定义它的代码块内有效。初始化变量时,未赋值的变量值可能是随机的。编程最佳实践建议使用有意义的标识符,并遵循特定平台的风格。此外,常量是不可变的,可以通过宏常量(`#define`)或`const`关键字定义,常量有助于提高代码可读性和维护性。不同数据类型支持不同的运算操作。
36 0
|
15天前
|
Java Python
变量
变量
40 14
|
3月前
|
存储 C语言
C 变量
【7月更文挑战第2天】C 变量。
19 2
|
5月前
|
存储 C语言 容器
C变量
C变量
33 1
|
5月前
|
存储 程序员 编译器
C++程序中的变量
C++程序中的变量
50 1
|
5月前
|
Python
DTL变量
【2月更文挑战第28天】DTL变量。
40 1
|
5月前
|
存储 编译器 C++
c++的变量
c++的变量
37 0
思考变量引起的巨大变化
思考变量引起的巨大变化