相关文章推荐

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博客。
 
推荐文章