CMake - 环境变量
文章目录
- 一、控制构建的环境变量
- 二、改变行为的环境变量
- 三、其他
一、控制构建的环境变量
环境变量 | 说明 | 可设置的值 |
---|---|---|
CMAKE_APPLE_SILICON_PROCESSOR | 在MacOS系统中,用于告诉CMake使用哪个架构进行编译 | arm64 / x86_64 |
CMAKE_BUILD_PARALLEL_LEVEL | 构建时要使用的最大并发进程数 | 数值 |
CMAKE_BUILD_TYPE | 构建类型 | Debug / Release / RelWithDebInfo / MinSizeRel |
CMAKE_CONFIGURATION_TYPES | 多配置生成器上的可用构建类型 | Debug / Release / RelWithDebInfo / MinSizeRel |
CMAKE_CONFIG_TYPE | ||
CMAKE_EXPORT_COMPILE_COMMANDS | 在生成期间启用/禁用编译命令的输出,如果开启则生成的文件compile_commands.json,包含所有编译单元所执行的指令 | ON / OFF |
CMAKE_GENERATOR | 指定生成器,可以在cmake指令中使用-G | Unix Makefiles, Ninja, etc. |
CMAKE_GENERATOR_INSTANCE | 用户提供的特定生成器的特定生成器实例 | 例如:对于Visual Studio 15 2017 Generator(及更高版本),这将指定所选VS实例的VS安装目录的绝对路径。 |
CMAKE_GENERATOR_PLATFORM | 用户提供的特定特定平台的特定生成器 | 例如:对于Visual Studio 15 2017 Generator(及更高版本),这将指定特定的平台架构。 |
CMAKE_GENERATOR_TOOLSET | 用户提供的本地构建系统工具集 | |
CMAKE_INSTALL_MODE | ||
CMAKE_<LANG>_COMPILER_LAUNCHER | 其中,<LANG>为 C, CXX, Fortran, HIP, ISPC, OBJC, OBJCXX, or CUDA | |
CMAKE_<LANG>_FLAGS | 其中,<LANG>为 C, CXX, Fortran, HIP, ISPC, OBJC, OBJCXX, or CUDA | |
CMAKE_<LANG>_LINKER_LAUNCHER | 其中,<LANG>为 C, CXX, Fortran, HIP, ISPC, OBJC, OBJCXX, or CUDA | |
CMAKE_MSVCIDE_RUN_PATH | ||
CMAKE_NO_VERBOSE | 实际发布时,使用它去掉一些冗余信息 | ON / OFF |
CMAKE_OSX_ARCHITECTURES | MacOS系统指定架构 | |
CMAKE_TOOLCHAIN_FILE | 工具链文件路径,交叉编译的工具链toolchain.cmake,该文件里面设置了一系列CMAKE变量和属性,比如C_COMPILER,CXX_COMPILER等 | |
DESTDIR | 重新指定所有安装文件的路径, make install DESTDIR= < $CUSTOM_PREFIX>在configure或cmake时,指定了要安装的路径后,以这种方式make install安装的文件会通通安装到以$CUSTOM_PREFIX为前缀的目录中,这样,开发者直接对这目录中的文件打包,即可发布使用 | |
LDFLAGS | 只有在第一个配置上使用cmake来确定默认链接器标志,之后LDFLAGS 的值存储在缓存中作为CMAKE_EXE_LINKER_FLAGS_INIT,CMAKE_SHARED_LINKER_FLAGS_INIT 和CMAKE_MODULE_LINKER_FLAGS_INIT。对于任何配置运行(包括第一个配置),如果定义了等效的CMAKE_<TYPE>_LINKER_FLAGS_INIT变量,则将忽略环境变量。 | |
<PackageName>_ROOT | find_package(<PackageName>)将用到此变量设置的package路径,例如要find_package(Foo),则需要设置 Foo_ROOT,否则会报CMP0074的警告 | Package的路径 |
VERBOSE | 实际发布时,使用它去掉一些冗余信息 |
二、改变行为的环境变量
环境变量 | 说明 | 可设置的值 |
---|---|---|
CMAKE_PREFIX_PATH | 设置库的搜索路径,可用于 find_package(), find_program(), find_library(), find_file(), find_path() 在改路径查找库 | 路径 |
三、其他
环境变量 | 说明 | 可设置的值 |
---|---|---|
ROJECT_BINARY_DIR | 工程的二进制文件路径 | |
CMAKE_CURRENT_BINARY_DIR | 外部编译时,指的是target目录,内部编译时,指的是顶级目录 | |
ROJECT_SOURCE_DIR | 工程源文件路径 | |
CMAKE_SOURCE_DIR | 工程根目录路径,如果有多层子目录,在子目录CMakeLists文件中获取到的也是根目录的路径 | |
CMAKE_CURRENT_SOURCE_DIR | 当前源文件路径,即CMakeList.txt所在的目录 | |
CMAKE_CURRENT_LIST_DIR | 当前CMakeList.txt所在的目录 | |
CMAKE_CURRENT_LIST_FILE | 当前CMakeList.txt文件完整路径 | |
CMAKE_CURRENT_LIST_LINE | 当前所在的行 | |
CMAKE_MODULE_PATH | 如果工程复杂,可能需要编写一些cmake模块,这里通过SET指定这个变量 | |
EXECUTABLE_OUTPUT_PATH | 当前工程生成可执行文件,生成的可执行文件存放的目录 | |
LIBRARY_OUTPUT_DIR | 当前工程生成库文件,生成的库文件存放的目录 | |
BINARY_OUTPUT_DIR | 生成的二进制文件存放的目录 | |
BUILD_SHARED_LIBS | 是否编译动态库,与add_library的第二个参数意思一样,设置ON则生成动态库,否则生成静态库 | ON / OFF |
sample_004
CMake - 环境变量相关推荐
- cmake 常用变量和常用环境变量查表手册
cmake 常用变量和常用环境变量查表手册 一,cmake 变量引用的方式: 前面我们已经提到了,使用${}进行变量的引用.在 IF 等语句中,是直接使用变量名而不通过${}取值 二,cmake 自定 ...
- 【Tools】cmake 常用变量和常用环境变量查表手册---整理
原文链接:https://blog.csdn.net/gubenpeiyuan/article/details/8667279 一.cmake 变量引用的方式: 前面我们已经提到了,使用${}进行变量 ...
- cmake学习(二)常用变量和常用环境变量
一.变量的引用方式是使用"${}",在IF中,不需要使用这种方式,直接使用变量名即可 二.自定义变量使用SET(OBJ_NAME xxxx),使用时${OBJ_NAME} 三.cm ...
- cmake 常用变量和常用环境变量
一,cmake 变量引用的方式: 前面我们已经提到了,使用${}进行变量的引用.在 IF 等语句中,是直接使用变量名而不通过${}取值 二,cmake 自定义变量的方式: 主要有隐式定义和显式定义两种 ...
- CMake设置Visual Studio工程的调试环境变量和工作目录cwd的方法
1.设置在Visual Studio中调试的环境变量,此设置仅仅在VS中点击那个绿色三角运行时有效,与你直接双击打开exe文件运行无关,有效避免多版本动态库全部写入系统环境变量的污染问题: # Vis ...
- cmake:在各级目录之间共享变量(cmake cache变量)
摘要: 本文记录一下 CMake 变量的定义.原理及其使用.CMake 变量包含 Normal Variables.Cache Variables.通过 set 指令可以设置两种不同的变量.也可以在 ...
- 64位OpenCV库生成32位库并配置环境变量
如果要获取X64的OpenCV,只需要把下面的CMake设置改为X64 下载的时候只有64位的OpenCV,有时候我们的程序可能是32位的,或者在VS中为X86的,好像这两个用起来没有什么区别,那我们 ...
- PowerShell批量设置PATH环境变量
PowerShell批量设置PATH环境变量 Code #requires -version 4.0 #requires #-runasadministrator# Get the ID and se ...
- CentOS7.7安装MySQL5.6并配置环境变量(详细版)
i. tar包下载 官网下载 https://dev.mysql.com/downloads/mysql/ 网盘获取 链接:https://pan.baidu.com/s/1DpULc0qQ4hqx6 ...
最新文章
- Elasticsearch学习之路(一)
- Alexa偷录私密对话并发送,继诡笑之后出现又一神举动
- 什么是GDT,LDT,GDTR及LDTR?
- 移动端分步注册_移动应用程序的可用性测试:分步指南
- 图【数据结构F笔记】
- centos5.8安装mysql5.3_CentOS 5.8 64位 源码安装mysql5.5.28
- mongodb 持久化 mysql_(转)mongodb与mysql区别
- 笔记本电脑主板电池_深圳外星人笔记本电脑维修服务中心
- 为什么三表联查查出的数据每条出现好多次_独家解读!京东高可用分布式流数据存储的架构设计...
- 第22节 软件工程知识
- [MSSQL]SQL简繁转换函数
- MQTT-mosquitto学习笔记
- apicloud菜鸟教程_APICloud 对象之 Method
- 音频和视频标签 与其他标签
- Linux 安装WebLogic9.2 MP2(图文详解 教程下载)
- JavaScript语法糖写法--JS代码优化
- 关于在POI以SAX方式解析,会导出拼音(音标)的问题解决
- 【pymysql模块】
- 工序外协与委外加工区别
- grok在python 中的使用