news 2026/6/11 12:35:56

CMake 014:注释与 Message 实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CMake 014:注释与 Message 实战

CMake 014:注释与 Message 实战

  • 一、CMake 注释:代码的 “说明书” 与 “遮罩层”
    • 1.1 行注释:# 号极简写法
    • 1.2 块注释:#[[]] 整块包裹(CMake 3.0+ 支持)
  • 二、CMake message:工程日志的 “输出中枢”
    • 2.1 基础用法:极简输出,开箱即用
    • 2.2 核心价值:不止于 “打印”
  • 三、实战演示:103message 项目快速跑通
    • 运行方式
  • 四、总结 ✨

在 CMake 工程化开发中,清晰的注释可控的日志输出,是提升项目可读性、可维护性的两大基石。本篇将带你吃透 CMake 两种核心注释用法,彻底掌握 message 日志的基础玩法与进阶思路,让你的 CMake 脚本更专业、更易协作 ✨


一、CMake 注释:代码的 “说明书” 与 “遮罩层”

CMake 注释承担着代码说明、临时屏蔽、文档记录的作用,支持两种写法,适配单行与整块场景,用法简洁又强大 🎯

1.1 行注释:# 号极简写法

这是 CMake 最基础、最通用的注释方式,与 Shell、Python 等脚本语言完全一致。

  • 语法:#开头#至行尾的所有内容均为注释

  • 执行逻辑:CMake 预处理阶段,会直接删除#到行尾的内容

  • 使用规范:

    • 单独成行,用于说明整段代码作用

    • 置于行尾,用于标注单行代码细节

    • 严禁插在代码中间,避免误注释有效逻辑

# 这是一整行的注释,用于说明下方代码功能 project(CommentDemo) # 行尾注释,标注项目定义

1.2 块注释:#[[]] 整块包裹(CMake 3.0+ 支持)

大型工程中,单行注释效率太低,CMake 3.0 推出块注释,对标 C 语言/* */多行注释,完美适配大段说明、临时屏蔽代码场景 🚀

  • 语法:#[[ 注释内容 ]],两个左中括号到两个右中括号之间的所有内容均为注释

  • 核心优势:

    • 支持多行注释,无需每行加#

    • 可嵌入代码任意位置,不破坏原有语法结构

    • 预处理时直接删除括号内全部内容

#[[ 这是整块注释 支持多行书写 常用于函数说明、版本记录、临时屏蔽代码段 ]] message("正常执行的代码") message(#[[ 中间嵌入注释 ]] "嵌入注释不影响执行")

✅ 关键提醒:块注释依赖 CMake 3.0 及以上版本,工程开头需指定最低版本:

cmake_minimum_required(VERSION 3.20)

二、CMake message:工程日志的 “输出中枢”

message 是 CMake 内置的日志打印命令,调试排查、状态提示、依赖检查全靠它,堪称 CMake 工程的 “喊话器” 📢

2.1 基础用法:极简输出,开箱即用

无需复杂配置,直接传参即可输出内容,支持多参数拼接,用法超灵活:

  • 语法:message([参数1] [参数2] ...)

  • 特性:多参数会自动拼接,无空格分隔

  • 引号规则:无空格的字符串可省略引号,含空格必须加引号

# 基础单参数输出 message("Hello CMake") # 多参数自动拼接输出:参数1参数2参数3 message(参数1 参数2 参数3) # 含空格需加引号 message("Hello CMake Message")

2.2 核心价值:不止于 “打印”

  1. 调试利器:实时查看变量、流程状态,快速定位配置问题

  2. 用户提示:告知调用者构建进度、成功 / 失败状态

  3. 日志分级:支持级别控制,区分调试日志与发行日志(进阶)

  4. 依赖追踪:专属机制用于库、头文件查找过程打印,让依赖配置更透明


三、实战演示:103message 项目快速跑通

103message演示项目为例,整合注释 + message 基础用法,直接复制可用 ✅

# 指定最低 CMake 版本,支持块注释 cmake_minimum_required(VERSION 3.20) # 定义项目名称 project(MessageDemo) #[[ ==================== message 基础用法演示 1. 单参数输出 2. 多参数拼接 3. 注释嵌入 ==================== ]] # 单参数测试 message("参数一") # 多参数拼接测试:输出 P1P2P3 message(P1 P2 P3) # 无空格字符串可省略引号 message(123456) # 嵌入块注释,不影响执行 message(#[[ 嵌入注释 ]] "正常输出内容")

运行方式

  1. 新建103message文件夹,创建CMakeLists.txt粘贴上述代码

  2. Windows:Shift + 右键打开 PowerShell,执行:

cmake-S.-B build
  1. Linux:直接在 Shell 执行相同命令,即可看到日志输出

四、总结 ✨

  • 注释:#搞定单行,#[[ ]]搞定整块,3.0+ 版本全覆盖

  • message:多参数自动拼接,基础输出零成本,大型工程可扩展分级、依赖日志

  • 规范使用注释与 message,能让 CMake 脚本从 “能用” 变 “好用”,团队协作更顺畅

下一篇将深入 message 日志级别、依赖查找专属打印,把 CMake 日志玩到极致,敬请期待 👋

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/11 12:35:50

如何快速解锁Windows远程桌面:SuperRDP2终极指南

如何快速解锁Windows远程桌面:SuperRDP2终极指南 【免费下载链接】SuperRDP Super RDPWrap 项目地址: https://gitcode.com/gh_mirrors/su/SuperRDP 你是否曾经因为Windows家庭版无法使用远程桌面而烦恼?或者因为专业版只能单用户连接而感到不便&…

作者头像 李华
网站建设 2026/6/11 12:33:53

机顶盒全志sd烧录卡制作

1、准备工作:一张sd卡(最好不要小于16G),读卡器,全志的固件(我用的是313的试的),制作工具下载,电脑。注意:该SD卡会被格式化,确定自己里面没有需要…

作者头像 李华
网站建设 2026/6/11 12:18:58

Vibe Kanban与Claude Code深度集成:从零到一的配置实战与效率提升指南

1. 为什么你需要Vibe Kanban与Claude Code的深度集成? 作为一个长期和AI打交道的开发者,我深刻理解新手在管理AI编程任务时的痛苦。你可能遇到过这样的场景:同时开着五六个聊天窗口,每个窗口都在和Claude讨论不同的功能实现&…

作者头像 李华
网站建设 2026/6/11 12:17:10

海康威视Win64设备接入开发套件(2021年3月版,含IPC/CVR全功能SDK)

本文还有配套的精品资源,点击获取 简介:面向Windows 64位平台的海康威视设备对接开发资源,支持IPC网络摄像机、CVR视频存储设备等主流硬件,提供登录、实时预览、云台控制、录像回放、抓图、报警订阅等完整业务能力。核心包含HC…

作者头像 李华
网站建设 2026/6/11 12:13:53

微信消息解密工具:3步实现本地聊天记录备份与数据恢复

微信消息解密工具:3步实现本地聊天记录备份与数据恢复 【免费下载链接】WechatDecrypt 微信消息解密工具 项目地址: https://gitcode.com/gh_mirrors/we/WechatDecrypt 微信消息解密、本地化备份、数据恢复是数字时代个人数据管理的重要需求。WechatDecrypt微…

作者头像 李华