在运行 cmake -B build 时,打印字符串(用于调试)

06 输出与变量 - 图1
06 输出与变量 - 图2
06 输出与变量 - 图3

message(STATUS “...”) 表示信息类型是状态信息,有 -- 前缀

06 输出与变量 - 图4
06 输出与变量 - 图5

message(WARNING “...”) 表示是警告信息

06 输出与变量 - 图6
06 输出与变量 - 图7

message(AUTHOR_WARNING “...”) 表示是仅仅给项目作者看的警告信息

06 输出与变量 - 图8
06 输出与变量 - 图9

AUTHOR_WARNING 的不同之处:可以通过 -Wno-dev 关闭

06 输出与变量 - 图10
06 输出与变量 - 图11

message(FATAL_ERROR “...”) 表示是错误信息,会终止 CMake 的运行

06 输出与变量 - 图12
06 输出与变量 - 图13

message(SEND_ERROR “...”) 表示是错误信息,但之后的语句仍继续执行

06 输出与变量 - 图1406 输出与变量 - 图15

message 可以用于打印变量

06 输出与变量 - 图16
06 输出与变量 - 图17

如果 set 没加引号会怎样?会变成分号分割的列表

06 输出与变量 - 图18
06 输出与变量 - 图19

如果 message 没加引号会怎样?会把列表里的字符串当成他的关键字

结论:除非确实需要列表,建议始终在你不确定的地方加上引号,
例如

  • set(sources “main.cpp” “mylib.cpp” “C:/Program Files/a.cpp”)
  • message(“${sources}”)

06 输出与变量 - 图20
06 输出与变量 - 图21