cmake中对环境变量读写都是通过ENV前缀来访问环境变量
读取环境变量则要使用
$ENV{JAVA_HOME}
这样的格式
写环境变量如下:
set( ENV{PATH} /home/martink )
if语句判断环境变量是否定义要用下面的格式
if(NOT DEFINED ENV{JAVA_HOME})
# 没有找到JAVA_HOME环境变量
message(FATAL_ERROR "not defined environment variable:JAVA_HOME")
endif()
#不能用if(ENV{JAVA_HOME})形式来判断是否定义
#但可以用if($ENV{JAVA_HOME})
总结一下,就可以看出来,读取环境变量时要在ENV前加
$
符号,而写和if判断是否定义时,
ENV{JAVA_HOME}
指代变量名所以不加
$
符号。
CMake
文件,其中包含解决方案中项目之间的来源和依赖关系列表
可由用户编辑的
CMake
文件,以及平台特定设置和编译器设置所属的文件
在以后的proj2
cmake
中,只有前一次会被覆盖。 因此,它旨在使
CMake
文件与VS解决方案保持同步。
该项目目前处于早期状态,可能无法在您的Visual Studio项目中正常工作。
以您的解决方案文件为参数调用proj2
cmake
:
# create
cmake
files
proj2
cmake
~/projects/MyMsVcProject/MyMsVcProject.sln
# edit the
set
tings
vim ~/projects/MyMsVcProject/
cmake
_config/MyMsVcPr
一、变量的引用方式是使用“${}”,在IF中,不需要使用这种方式,直接使用变量名即可二、自定义变量使用
SET
(OBJ_NAME xxxx),使用时${OBJ_NAME}三、
cmake
的常用变量:
CMAKE
_BINARY_DIR, PROJECT_BINARY_DIR :这两个变量内容一致,如果是内部编译,就指的是工程的顶级目录,如果是外部编译,指的就是工程编译发生的目录。
CMAKE
_SOURCE_...
二,
cmake
自定义变量的方式:
主要有隐式定义和显式定义两种,前面举了一个隐式定义的例子,就是 PROJECT 指令,他会隐式的定义_BINARY_DIR 和_SOURCE_DIR 两个变量。
显式定义的例子我们前面也提到了,使用
SET
指令,就
Linux工程
cmake
出来有依赖的 可以用sh脚本配置
环境变量
来运行,但是vs联调就变得不好解了。
cmake
工程在调试时 设置
环境变量
就很重要了 不哆嗦,主要下面两种记录:
1.方法一
cmake
list
.json
非常可靠 不同的工程都有自己的json文件管理。
"
environment
s": [
"LD_LIBRARY_PATH": "/opt/boost/lib:/opt/ffmpeg/lib"
if(NOT
DEFINED
ENV
{JAVA_HOME})
# 没有找到JAVA_HOME
环境变量
message(FATAL_ERROR "not
defined
environment
variable
:JAVA_HOME")
许多项目的交叉编译配置高度依赖
CMake
生成最终的Makefile,因此
CMake
对
环境变量
的
判断
是高频使用场合。
CMake
系列:
判断
及引用
环境变量
_岬淢箫声的博客-CSDN博客。