6. 打印日志信息

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.cpp

6 directories, 12 files
posted @ 2024-07-15 10:42  kobayashilin1  阅读(22)  评论(0编辑  收藏  举报