6. 打印日志信息

news/2024/11/14 12:50:58/文章来源:https://www.cnblogs.com/kobayashilin1/p/18302668

6. 打印日志信息

在CMake中可以用用户显示一条消息,该命令的名字为message:

message([STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR] "message to display" ...)
  • (无):重要信息
  • STATUS:非重要信息
  • WARNING:CMake 警告,会继续执行
  • AUTHOR_WARNING:CMake 警告 (dev), 会继续执行
  • SEND_ERROR:CMake 错误, 继续执行,但是会跳过生成的步骤
  • FATAL_ERROR:CMake 错误, 终止所有处理过程

CMake 的命令行工具会在 stdout 上显示 STATUS 消息,在 stderr 上显示其他所有消息。CMake的 GUI 会在它的 log 区域显示所有消息。

CMake 警告和错误消息的文本显示使用的是一种简单的标记语言。文本没有缩进,超过长度的行会回卷,段落之间以新行做为分隔符。

输出一般日志信息

# 输出一般日志信息
message(STATUS "source path: ${PROJECT_SOURCE_DIR}")

将构建目录的文件清空,重新构建一次:

image-20231202130400799

可以看到,上面 source path: /home/yuzu/cmake_proj/proj5 就是我们要打印的信息

输出警告信息

# 输出警告信息
message(STATUS "source path: ${PROJECT_SOURCE_DIR}")

将构建目录的文件清空,重新构建一次:

image-20231202130506852

这里显式的就是警告信息了,CMake会继续执行,但是跳过生成的步骤

输出错误信息

# 输出错误信息
message(FATAL_ERROR "source path: ${PROJECT_SOURCE_DIR}")

image-20231202130808409

此时 CMake 不会继续执行处理过程,而是终止

这里我使用的 CMakeLists.txt :

cmake_minimum_required(VERSION 3.17)
project(CALC_TEST)
set(CMAKE_CXX_STANDARD 11)set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)include_directories(${PROJECT_SOURCE_DIR}/include)
file(GLOB SRC_LIST ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)# 指定链接动态库的目录
link_directories(${PROJECT_SOURCE_DIR}/lib)add_executable(main ${SRC_LIST})target_link_libraries(main calcso pthread)# 输出一般日志信息
# message(STATUS "source path: ${PROJECT_SOURCE_DIR}")
# 输出警告信息
# message(WARNING "source path: ${PROJECT_SOURCE_DIR}")
# # 输出错误信息
# message(FATAL_ERROR "source path: ${PROJECT_SOURCE_DIR}")

使用的工程还是先前的:

tree . -L 2
.
├── CMakeLists.txt
├── bin
│   └── main
├── build
│   ├── CMakeCache.txt
│   ├── CMakeFiles
│   ├── Makefile
│   └── cmake_install.cmake
├── include
│   └── head.h
├── lib
│   └── libcalcso.so
├── main.cpp
└── src├── add.cpp├── div.cpp├── mul.cpp└── sub.cpp6 directories, 12 files

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

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

相关文章

5. 库相关

5. 库相关 有些时候我们编写的源代码并不需要将他们编译生成可执行程序,而是生成一些静态库或动态库提供给第三方使用,下面来讲解在cmake中生成这两类库文件的方法。 5.1 什么是库 本部分介绍创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这…

Performance Monitoring检测camstar性能

InsiteXMLServer \ Provate Bytes使用内存的字节 InsiteXMLServer \ Working Set Peak 高峰 Process \ %Processor Time CPU占用时间 InsiteXMLServer \ Elapsed Time占用时间 Camstar.Security.LMServer \ Elapsed Time CamstarNotificatuionServer\Elapsed Time CIMSagent \ …

【Bug】拓展方法必须在非泛型静态类中定义

原文链接:https://blog.csdn.net/weixin_44231544/article/details/121752347 原: 修改: 拓展方法1.定义: (1)扩展方法能使你能够向现有类型添加“添加”方法,而无需创建新的派生类型,重新编译或以其他方式修改原始类型。 (2)扩展方法是一种特殊的静态方法,但可以像…

kettle从入门到精通 第七十五课 ETL之kettle血缘,数据血缘

在了解kettle血缘之前,咱们先来了解下什么是数据血缘? 1、数据血缘定义(来自gpt) 数据血缘(Data Lineage)是指在数据管理和数据分析中追踪数据的源头、流向和处理过程的能力。具体来说,数据血缘描述了数据如何被创建、变换和移动,以及这些过程中数据的路径和影响。它有…

kettle从入门到精通 第七五课 ETL之kettle血缘,数据血缘

在了解kettle血缘之前,咱们先来了解下什么是数据血缘? 1、数据血缘定义(来自gpt) 数据血缘(Data Lineage)是指在数据管理和数据分析中追踪数据的源头、流向和处理过程的能力。具体来说,数据血缘描述了数据如何被创建、变换和移动,以及这些过程中数据的路径和影响。它有…

如何实现元素的曝光监测

我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:霁明一些名词解释 曝光 页面上某一个元素、组件或模块被用户浏览了,则称这个元素、组件或模块被曝光了。 视图元素 将页面上展示的…

MySQL - [17] Oracle、SQLServer、MySQL数据类型对比

题记部分 — 业精于勤荒于嬉,行成于思毁于随 —

华为云DTSE助力虎彩鲜檬优化运维效率,助力迁移上云

本文主要介绍了鲜檬摄影在数字化变革中,与华为云紧密合作,借助其DTSE专家团队,成功完成了业务系统改造、技术方案优化及迁移上云。本文分享自华为云社区《虎彩鲜檬数字化产业变革,迁移上云,助力其打造智慧婚拍新纪元》,作者: HuaweiCloudDeveloper。 来源:《华为云DTSE…

【CTF入门】BUUCTF Misc刷题(持续更新)

【CTF入门】BUUCTF Misc刷题 签到 点开发现签到题直接把flag交出来了,直接复制提交即可考点:了解CTF中flag的格式一般为flag{}

Linux 中 sed命令在指定行前添加空行

001、[root@PC1 test]# ls a.txt [root@PC1 test]# cat a.txt 33 aa 44 aa 88 aa 33 aa ff kk 33 aa 88 22 mm 88 33 44 22 99 [root@PC1 test]# sed 2 s/.*/\n&/ a.txt ## 在第二行前添加空行 33 aa 44 aa 88aa 33 aa ff kk 33 aa 88 22 mm 88 33 44 22 99 002、sed[roo…

nuxtjs2.x项目PC移动互相跳转

1、在plugins目录下新建terminalToggle.js,写入以下代码 (function () {let sUserAgent = navigator.userAgent.toLowerCase();let isIpad = sUserAgent.match(/ipad/i) == "ipad";let isIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";let i…

小车轮子测试(I2C)

I2C以及小车轮子测试I2C总线是PHILIPS公司推出的一种在电子通信控制领域常用的串行通信总线,是一种简单、双向 通信、二线制、同步的串行总线,具有连接线少、控制简单、通信速率高等优点。 端口检测 cd /dev lsI2C读写操作 使用i2cdetect命令检测i2c总线 i2cdetect -l如果红色…