一 概述

set方法用于给变量设置值,同理,unset方法用于给变量清空值,其中变量的取值为以下三种:

  • 一般变量(Normal Variable)
  • 缓存变量(Cache Variable)
  • 环境变量(Environment Variable)

二 unset方法说明

2.1 一般变量(Normal Variable)

复制

1
unset(<variable> PARENT_SCOPE)
  • variable:设置要清除的变量名
  • PARENT_SCOPE(可选):如果set方法设置了PARENT_SCOPE,清除时,也请带上PARENT_SCOPE

2.2 缓存变量(Cache Variable)

复制

1
unset(<variable> CACHE)
  • variable:设置要清除的变量名
  • 对于缓存变量清除,带上CACHE

2.3 环境变量(Environment Variable)

复制

1
unset(ENV{<variable>})
  • ENV:Environment的简写,是环境变量的意思
  • variable:设置要清除的变量名

三 示例

3.1 一般变量(Normal Variable)

  • CMakeList.txt中设置

    复制

    1
    2
    3
    4
    5
    
    #normal
    set(normal  "normal" )
    message(WARNING ${normal})
    unset(normal)
    message(WARNING ${normal})
    
  • Debug信息

    复制

    1
    2
    3
    4
    
    CMake Warning at CMakeLists.txt:11 (message):normalCMake Warning at CMakeLists.txt:13 (message):#因为调用了unset,没有信息输出
    

3.2 缓存变量(Cache Variable)

  • CMakeList.txt中设置

    复制

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    set(string cmake CACHE STRING "string")#没有多次使用set,导致覆盖variable
    message(WARNING ${string})
    #unset(string)
    unset(string CACHE)
    message(WARNING ${string})set(normalCache "normalCache")#多次使用set,导致覆盖variable
    set(normalCache "NewnormalCache" CACHE STRING "string")
    message(WARNING ${normalCache})
    #unset(normalCache)
    unset(normalCache CACHE)
    message(WARNING ${normalCache})
    
  • Debu信息(set方法使用了Cache,清除时unset,也需要使用Cache)

    复制

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    CMake Warning at CMakeLists.txt:18 (message):cmakeCMake Warning at CMakeLists.txt:21 (message):CMake Warning at CMakeLists.txt:27 (message):NewnormalCacheCMake Warning at CMakeLists.txt:30 (message):
    

3.3 环境变量(Environment Variable)

  • CMakeList.txt中设置

    复制

    1
    2
    3
    4
    5
    
    ##unset(ENV)
    set(ENV{DEFINE} DEFINE) #自定义的变量
    message(WARNING $ENV{DEFINE})
    unset(ENV{DEFINE})
    message(WARNING $ENV{DEFINE})
    
  • Debug信息

    复制

    1
    2
    3
    4
    
    CMake Warning at CMakeLists.txt:35 (message):DEFINECMake Warning at CMakeLists.txt:37 (message):
    

四 参考

  • Documentation>>cmake-command>>unset

Cmake入门之——Unset方法(七)相关推荐

  1. [转] CMake入门

    转载说明: 文章转自网络,版权归原作者所有, 原文链接: https://www.hahack.com/codes/cmake/ 特别感谢发哥(写代码的篮球痴 )分享 文章目录 ▌什么是 CMake? ...

  2. html5游戏制作入门系列教程(七)

    我们继续这一系列文章,使用HTML5的canvas组件进行游戏开发.我们将要更新完善我们的第4课html5游戏制作入门系列教程(四)的游戏实例,并增加了火球,敌人和碰撞检测等功能模块.所以,现在我们的 ...

  3. 基于Proteus无实物零基础STM32入门自学教程(七)--定时器点亮LED

    简介:本项目为基于STM32F103R6为核心定时器点亮LED工程.在第一个任务里我们点亮LED是使用延时点亮.从这一讲我们开始学习真正的定时器使用方法,而这种方法是最接近实际应用的.实际应用中几乎不 ...

  4. wlan从入门到精通第七期直接转发和隧道转发

    wlan从入门到精通第七期直接转发和隧道转发 AC+FIT AP架构的网络中存在两种报文,一类是AC管理控制AP的报文,称为管理报文(也叫控制报文),另一类是STA的用户数据报文,称为业务报文. 如上 ...

  5. ArcGIS for Desktop入门教程_第七章_使用ArcGIS进行空间分析 - ArcGIS知乎-新一代ArcGIS问答社区...

    原文:ArcGIS for Desktop入门教程_第七章_使用ArcGIS进行空间分析 - ArcGIS知乎-新一代ArcGIS问答社区 1 使用ArcGIS进行空间分析 1.1 GIS分析基础 G ...

  6. AutoLisp从入门到放弃(七)

    AutoLisp从入门到放弃(七) 一.创建图元 二.删除图元 1.command命令 2.entdel函数 本章将介绍如何在AutoLisp代码中通过直接操作实体数据库的方式来新增和删除图元. 一. ...

  7. 阮一峰ES6入门读书笔记(七):运算符的拓展

    阮一峰ES6入门读书笔记(七):运算符的拓展 1. 指数运算符 ES6新增了一个指数运算符(**). 2 ** 2 // 4 2 ** 3 // 8 这个运算符的一个特点是右结合,而不是常见的左结合. ...

  8. 超详细的cmake入门教程【转载】

    这篇文章主要介绍了超详细的cmake入门教程,需要的朋友可以参考下 源出处 超详细的cmake入门教程 什么是cmake 在 linux 平台下使用 CMake 生成 Makefile 并编译的流程 ...

  9. IDE之EcliPse:EcliPse软件的简介、安装、入门、使用方法之详细攻略

    IDE之EcliPse:EcliPse软件的简介.安装.入门.使用方法之详细攻略 目录 EcliPse软件的简介 Eclipse特点 EcliPse软件的安装 EcliPse软件的入门 1.快捷键集合

最新文章

  1. Docker安全加固——利用LXCFS增强docker容器隔离性和资源可见性
  2. 1750亿参数,史上最大AI模型GPT-3上线:不仅会写文章、答题,还懂数学
  3. careercup-C和C++ 13.2
  4. 分治、动态规划、贪婪 之 算法分析
  5. Microbit扩展编写
  6. 分布式下服务注册的地位和原理
  7. python中的类装饰器应用场景_这是我见过最全面的Python装饰器教程了!
  8. 超越BI,数据产品的前途在哪里?
  9. php打印预览jquery,php 实现打印预览的功能
  10. 从零开始学 iOS 开发的15条建议
  11. QT显示图片和中途修改图片
  12. Android 在Activity界面下滑动ViewPager实现两个Fragment之间的切换?
  13. 如何在 Mac 上修复丢失的鼠标?
  14. 百度Site App的uaredirect.js实现手机访问,自动跳转网站手机版
  15. NOIP 2015 推销员
  16. 树莓派可以搜索到wifi但是连接不上的问题解决方法
  17. 【青龙面板】快手JS版脚本
  18. Python挑战游戏( PythonChallenge)闯关之路Level- 3
  19. iPhone13充电宝哪个牌子好?iPhone13无线充电宝推荐
  20. mysql主备方案_Mysql 主备双库方案

热门文章

  1. coldfusion_ColdFusion中的一周:5月7日至13日:社区和开源
  2. 扩展卡尔曼滤波建模及应用
  3. 提醒信用卡还款日的软件叫什么?
  4. EnOcean-自获能无线电技术
  5. 好的爆款文案可以让用户喜欢上我们的产品
  6. 增强人体免疫力的方法
  7. java相对应的键盘输入_java接收键盘输入
  8. uniapp 轻轻松松开发各类小程序
  9. 计算机多媒体的应用 毕业论文,《计算机多媒体技术的应用》-毕业论文.doc
  10. stc单片机 读写flash_3.看懂单片机上的标号