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.hqwc.cn/news/316443.html

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

相关文章

在pbootcms中制作静态化的TAG标签列表

如果你使用pbootcms来管理你的网站&#xff0c;你可能会遇到这样的需求&#xff1a;将TAG标签列表改成静态化的类似于栏目结构的需求。下面是实现这个需求的步骤。 步骤1 修改PHP文件 打开 apps/home/controller/ParserController.php 并找到大约在1852行左右的代码段&#x…

论文解读:A New CNN Building Block for Low-ResolutionImages and Small Objects

引言 之前通过stride和pooling这些下采样操作&#xff0c;但是这些操作都会或多或少丢失图像的信息&#xff0c;所以这不适用于具有低分辨率图像和小物体的更困难的任务上。像池化选择maxpooling或者是averagepooling、卷积的步长(太大的话会丢失信息)都是很头疼的问题&#x…

共识算法介绍

文章目录 共识算法Paxos 算法三种角色一致性提交算法prepare 阶段accept 阶段commit 阶段 CAP 定理BASE 理论Zookeeper 算法实现三类角色三个数据三种模式四种状态消息广播算法Leader选举算法 共识算法 Paxos 算法 Paxos 算法是莱斯利兰伯特(Leslie Lamport)1990 年提出的一种…

25道RabbitMQ面试题含答案(很全)

1. 什么是RabbitMQ RabbitMQ是一个开源的消息队列系统&#xff0c;它使用AMQP&#xff08;高级消息队列协议&#xff09;标准。RabbitMQ的主要目标是提供可靠的消息传递&#xff0c;确保消息的可靠性和顺序性&#xff0c;同时提供灵活的路由和消息确认机制。 RabbitMQ基于AMQ…

iCloud 备份 如何删除?

文章目录 Intro操作效果 浏览器端触发手机操作 Intro 前几天重置手机系统&#xff0c;不小心向 iCloud 推送了手机备份。 可是我用的是不需要这份备份&#xff0c;想要删除&#xff0c;可是常规入口找不到删除icloud中备份的按钮。 需要如下设备&#xff1a; 一台iphone &am…

Java中的throw和throws:异常处理详解

简单来说就是&#xff1a;你用throws不一定会抛出异常&#xff0c;它只是代表这个方法可能抛出这个异常&#xff0c;像打个预防针一样&#xff1b; 你要用throw那一定会抛出异常&#xff0c;因为throw是一个行为&#xff0c;代表抛出异常的动作。 一. throw关键字&#xff1…

Unity中Shader的Reversed-Z(DirectX平台)

文章目录 前言一、在对裁剪坐标归一化设置NDC时&#xff0c;DirectX平台Z的特殊二、在图形计算器中&#xff0c;看一下Z值反转前后变化1、在图形计算器创建两个变量 n 和 f 分别 控制近裁剪面 和 远裁剪面2、带入公式得到齐次裁剪空间下Z值3、进行透视除法4、用 1 - Z 得出Z值反…

CNAS中兴新支点——第三方检测机构执行的标准是什么?

第三方软件测评机构执行的标准包括但不限于以下几个方面&#xff1a; 1、国家和行业标准&#xff1a;第三方软件测评机构必须遵循国家和行业标准&#xff0c;如《软件测试文档标准》(GB/T 25000.51-2016)、《软件能力成熟度模型》(CMM)等。这些标准规定了软件测试的内容、方法…

polar CTF web 被黑掉的站

一、题目 二、解答 1、dirsearch 扫目录 看到shell.php和index.php.bak 一看就是爆破&#xff0c;字典都给了&#xff0c;最后得到为 nikel

通用图片转Excel与票证转为结构化数据的Excel识别有什么区别?

引言&#xff1a; 随着数字化时代的到来&#xff0c;大量的纸质文档需要被转换为电子格式以便于管理和分析。其中&#xff0c;表格数据的转换尤为重要。通用图片转Excel表格识别和结构化OCR识别是两种常见的技术&#xff0c;它们虽然都是用于将图片中的内容转换为可编辑的Exce…

linux系统下sql脚本的执行与导出

terminal中执行 执行 mysql -u [username] -p -D [databasename] < [XXX.sql] 导出 mysql -u [username] -p [datbasename] > [XXX.sql] 导出的数据库名自定义。 mysql -u [username] -p [databasename] [tablename] > [xxx.sql] 导出表名自定义 mysql shell 执行 …

Java学习路线第六篇:互联网生态(1)

这篇则分享Java学习路线第六part&#xff1a;互联网生态 恭喜你已经成功追到第六章节啦&#xff0c;要被自己的努力感动到了吧&#xff0c;而这节将承担起学完互联网生态的使命&#xff0c;本使命为单向契约&#xff0c;你可选择YES或者选择YES。 Linux Linux从入门到精通视…