CMake入门教程【基础篇】打印(message)

文章目录

    • 1. 基本用法
      • 示例
    • 2. 打印变量的值
      • 示例
    • 3. 打印列表的值
      • 示例
    • 4. 打印生成器表达式的值
      • 示例
    • 5.总结

在这里插入图片描述

Yes
No
Start CMake Script
Define Variables and Lists
Use message for Status and Debugging
Check for Errors
Display Error Messages
Continue Build Process
Stop Build Process
Successful Build

1. 基本用法

在CMake中,message函数是打印信息的核心工具。它不仅用于调试,还用于通知用户关于构建过程的重要信息。这个函数的基本语法是:

message(<mode> <message>...)

<mode> 是消息类型,主要有以下几种:

  • STATUS:打印状态信息,通常用于普通通知。
  • WARNING:打印警告消息,但不会停止CMake进程。
  • AUTHOR_WARNING:专门为项目维护者打印的警告信息。
  • SEND_ERROR:打印错误信息并停止CMake配置过程。
  • FATAL_ERROR:打印致命错误信息并立即终止所有CMake进程。
  • DEPRECATION:用于指出某些特性已弃用的警告。
  • DEBUG:用于调试目的的信息,仅在特定条件下显示。

示例

message(STATUS "显示状态信息。")
message(WARNING "显示警告信息。")
message(SEND_ERROR "显示并发送错误信息。")

2. 打印变量的值

在CMake脚本中经常需要查看变量的当前值。这可以通过以下方式实现:

message(<mode> "Prefix: ${variable}")

这里,${variable} 会被替换为变量的实际值。

示例

set(my_var "Hello, CMake!")
message(STATUS "my_var的值为:${my_var}")

3. 打印列表的值

与变量类似,您也可以打印列表的内容:

message(<mode> "List: ${list}")

这会显示列表中的所有元素。

示例

set(my_list "apple" "banana" "cherry")
message(STATUS "my_list中的元素:${my_list}")

4. 打印生成器表达式的值

生成器表达式是CMake的高级功能,用于在生成步骤中计算条件表达式的结果。您可以这样打印它们的值:

message(<mode> "Variable: $<variable>")

示例

set(my_var "$<CONFIG>")
message(STATUS "my_var的值为:${my_var}")

5.总结

message 函数是CMake脚本中的重要工具,可以帮助您在配置和调试过程中了解脚本的行为和状态。合理使用这个函数,可以使您的CMake脚本更易于理解和维护。
记住,适时的打印信息对于解决构建问题和优化构建过程非常有帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/592920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

页面间动画之放大缩小视图

目录 1、Exchange类型的共享元素转场 2、Static类型的共享元素转场 3、场景示例 在不同页面间&#xff0c;有使用相同的元素&#xff08;例如同一幅图&#xff09;的场景&#xff0c;可以使用共享元素转场动画衔接。为了突出不同页面间相同元素的关联性&#xff0c;可为它们…

C语言——操作符

一、算数操作符 1、(加操作符) 用于将两个数相加&#xff0c;例&#xff1a;3 3结果为6 2、-(减操作符) 用于将两个数相减&#xff0c;例&#xff1a;3 - 3结果为0 3、*(乘操作符) 用于将两个数相乘&#xff0c;例&#xff1a;3 * 3结果为9 4、/(除操作符) 用于将两个…

Cesium在2d模式下Billboard位置显示不正确的解决方法

Billboard在Cesium 3d模式下位置显示正确&#xff0c;但在2d模式下位置显示不正确&#xff0c;刷新不及时。 解决办法&#xff1a; 不要设置height和heightReferencen&#xff0c;因为2d模式没有高程。

计算机毕业设计 SpringBoot的乡村养老服务管理系统 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

南昌找工作用什么APP或者招聘网站

南昌找工作用吉鹿力招聘网 通过吉鹿力招聘网&#xff0c;可以随时查看最新职位&#xff0c;跟踪简历投递动态&#xff0c;与正在进行招聘的CEO、部门负责人、HR在线沟通&#xff0c;查看其他候选人面试该职位后对面试官、公司环境的面试评价等&#xff0c;为求职者提供参考。 …

【PostgreSQL】约束-检查约束

【PostgreSQL】约束链接 检查 唯一 主键 外键 排他 检查约束 在计算机科学和软件工程中&#xff0c;约束检查是指在程序运行时对变量或数据进行检查&#xff0c;确保其满足一定的规则或条件。这些规则或条件可以是预定义的&#xff0c;也可以是通过编程语言的约束机制定义的…

HCIA-Datacom题库(自己整理)——ACL多选

1.基于ACL规则,ACL可以划分为以下哪些类? 基本ACL 二层ACL 用户ACL 高级ACL 2.ACL分类有哪些? 基本ACL 高级ACL 二层ACL 用户自定义ACL 3.路由器A的G0/0/1接口配置信息如图,下列说法正确的有? 本接口不会转发收到的FTP报文 本接口可以和其它路由器建立OSPF的邻居…

MyBatis之关联查询

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 MyBatis之关联查询 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、一对一关联查询二…

javafx

JavaFX JavaFX简介 JavaFX是一个用于创建富客户端应用程序的图形用户界面&#xff08;GUI&#xff09;框架。它是Java平台的一部分&#xff0c;从Java 8开始成为Java的标准库。 JavaFX提供了丰富的图形和多媒体功能&#xff0c;使开发人员能够创建具有吸引力和交互性的应用程…

simulink代码生成(九)—— 串口显示数据(纸飞机联合调试)

纸飞机里面的协议是固定的&#xff0c;必须按照协议配置&#xff1b; &#xff08;1&#xff09;使用EasyHEX协议&#xff0c;测试int16数据类型 测试串口发出的数据是否符合&#xff1f; 串口接收数据为&#xff1a; 打开纸飞机绘图侧&#xff1a; &#xff08;1&#xff09…

机器学习(三) -- 特征工程(2)

系列文章目录 机器学习&#xff08;一&#xff09; -- 概述 机器学习&#xff08;二&#xff09; -- 数据预处理&#xff08;1-3&#xff09; 机器学习&#xff08;三&#xff09; -- 特征工程&#xff08;1-2&#xff09; 未完待续…… 目录 系列文章目录 前言 三、特征…

精准掌控 Git 忽略规则:定制化 .gitignore 指南

&#x1f9d9;‍♂️ 诸位好&#xff0c;吾乃诸葛妙计&#xff0c;编程界之翘楚&#xff0c;代码之大师。算法如流水&#xff0c;逻辑如棋局。 &#x1f4dc; 吾之笔记&#xff0c;内含诸般技术之秘诀。吾欲以此笔记&#xff0c;传授编程之道&#xff0c;助汝解技术难题。 &…

前端中级算法题

前端中级算法题 反转字符串 编写一个函数&#xff0c;接受一个字符串作为输入&#xff0c;并返回反转后的字符串。 示例&#xff1a; function reverseString(str) {return str.split().reverse().join(); }reverseString(hello); // 输出: olleh 找出数组中的最大值 编写一个函…

统信UOS操作系统上扩容数据盘

原文链接&#xff1a;统信UOS操作系统上扩容数据盘 hello&#xff0c;大家好啊&#xff01;今天我要给大家介绍的是在统信UOS操作系统上扩容数据盘的方法。在使用UOS的过程中&#xff0c;随着数据的不断增加&#xff0c;原有磁盘空间可能会变得不足&#xff0c;这时候就需要对数…

【2024年必看】私域裂变的10大秘籍,让你轻松玩转市场!

在私域时代&#xff0c;企业需要不断地寻找新的用户来扩大自己的用户群体。然而&#xff0c;随着获客成本的逐渐升高&#xff0c;传统的广告宣传和推广方式已经不再是最优选择。因此&#xff0c;“老带新”的裂变策略成为了企业拉新的首选。 通过给予老用户奖励&#xff0c;刺…

汽车标定技术(十四)--标定数据固化方法简介

目录 1.标定数据固化方法 1.1 基于XCP固化 1.2 基于UDS固化 2. 具体实现形式 2.1 CAN

到底是1K=1024还是1K=1000呢?

问题 举例&#xff1a;15GB的数据块的大小是15*2的30次方*8bit&#xff1b;而10Gbit/s的传输速率是10*10的9次方bit/s 那么问题来了&#xff1a;这个G到底是2的30次方还是10的9次方呢&#xff1f;&#xff1f;&#xff1f; 理解 由于在计算机内部采用的是二进制&#xff…

分类预测 | Matlab实现DBO-SVM蜣螂算法优化支持向量机多特征分类预测

分类预测 | Matlab实现DBO-SVM蜣螂算法优化支持向量机多特征分类预测 目录 分类预测 | Matlab实现DBO-SVM蜣螂算法优化支持向量机多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现DBO-SVM蜣螂算法优化支持向量机多特征分类预测&#xff08;完整…

第十三章 创建Callout Library - 兼容的语言和编译器

文章目录 第十三章 创建Callout Library - 兼容的语言和编译器兼容的语言和编译器标注库 Runup 和 Rundown 函数 第十三章 创建Callout Library - 兼容的语言和编译器 兼容的语言和编译器 使用 $ZF Callout Interface&#xff0c;可以用外部语言编写函数并从 ObjectScript 调…

html引入react以及hook的使用

html引入react 效果代码注意 效果 分享react demo片段的时候&#xff0c;如果是整个工程项目就有点太麻烦了&#xff0c;打开速度慢&#xff0c;文件多且没必要&#xff0c;这个时候用html就很方便。 在html中能正常使用useState 和 useEffect 等hook。 代码 <!DOCTYPE htm…