CMake_message,set,list的用法

AI-摘要
Tianli GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
CMake_message,set,list的用法
幻雪格式
Message(模式+“${自定义/系统变量} hello world” …)
其中空格也可以用 ; ,我会比较习惯用空格
普通模式
模式默认空,放着不写就行
特殊模式
STATUS
输出状态信息
WARNING
当用户错误运行时的错误信息
AUTHOR_WARNING
开发的时候当日志来用
SEND_ERROR
发送一个错误信息,但是不终止
FATAL_ERROR
发送一个错误信息,并且终止
STATUS
可以看到前面多加了两个 - 和下面的配置和生成构建文件消息提示是一样的状态信息
WARNING
此消息会提示报错行:104 行
报错信息是:HELLO WORLD
AUTHOR_WARNING
和 WARNING 不同的是多了一行只能由开发者去解决的报错提示 此警告适用于项目开发人员。 使用 -Wno-dev 来抑制它。
SEND_ERROR
和上面的 WARNING 的差别在于输出的报错信息是和 WARNING 相似的但是下面的配置,生成,构建均不成功
FATAL_ERROR
和 SEND_ERROR 类似,但是会直接终止下面的构建,可以看到本一个出现的分割线没有输出了
以上是各个模式下出现的情况
变量
变量有分为用户定义的变量和我们 CMake 定义好的变量
输出的形式是 Message(模式+“${自定义/系统变量} …)
系统自带的变量
项目信息
CMAKE_PROJECT_NAME: 当前项目的名称。PROJECT_SOURCE_DIR/CMAKE_SOURCE_DIR: 顶层源代码目录。PROJECT_BINARY_DIR/CMAKE_BINARY_DIR: 顶层二进制或编译目录。
编译器和工具设置
CMAKE_C_COMPILER: C编译器的全路径。CMAKE_CXX_COMPILER: C++编译器的全路径。CMAKE_COMPILER_IS_GNUCC: 如果是GNU的C编译器则为真。CMAKE_COMPILER_IS_GNUCXX: 如果是GNU的C++编译器则为真。
编译标志
CMAKE_C_FLAGS: C编译器的命令行选项。CMAKE_CXX_FLAGS: C++编译器的命令行选项。
构建类型
CMAKE_BUILD_TYPE: 当前的构建类型,如Release或Debug。
安装路径
CMAKE_INSTALL_PREFIX: 安装目录的前缀。
系统信息
CMAKE_SYSTEM: 宿主系统的名称。CMAKE_SYSTEM_NAME: 不包含版本的宿主系统名称。CMAKE_SYSTEM_PROCESSOR: 目标处理器的名称。
库和执行文件
CMAKE_ARCHIVE_OUTPUT_DIRECTORY: 静态库的输出目录。CMAKE_LIBRARY_OUTPUT_DIRECTORY: 共享库的输出目录。CMAKE_RUNTIME_OUTPUT_DIRECTORY: 可执行文件的输出目录。
查找到的库和程序
CMAKE_PREFIX_PATH: 系统查找包(libraries/packages)的路径。CMAKE_INCLUDE_PATH: 系统头文件查找路径。- 变量例如
Boost_FOUND,Boost_INCLUDE_DIRS,Boost_LIBRARIES等,通过find_package(Boost)自动生成。
版本信息
CMAKE_MAJOR_VERSION,CMAKE_MINOR_VERSION,CMAKE_PATCH_VERSION: 分别代表 CMake 的主版本、次版本和补丁级别版本号。
用户定义变量
输出文本方式
message([[ ]]) 和 message(" ") 以及直接使用 message( ) 均可以输出文本,区别是 [[]] 不会展开变量不会对其中诸如${A}的形式进行解析,而 "" 是会去解析变量,而直接()是不推荐的,因为容易误导,我认为需要清晰地表达意图那么最好还是使用””
LIST 创建多个变量(列表)
LIST 这个名字可以随便取,只要形式如上就算创建多个变量
关于列表的更多用法如下:
1 | # 创建多个变量 |
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果

![[Pasted image 20240107130937.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/adgjksgajk.png)
![[Pasted image 20240107130801.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/adhahjchkhxz.png)
![[Pasted image 20240107131729.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/uahduhawudhuihxzdjhkwa.png)
![[Pasted image 20240107131707.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/auihduhksjhdcxkajhkdjwq.png)
![[Pasted image 20240107140201.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/haowdhoiahdiojopxzdopwqa.png)
![[Pasted image 20240107140220.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/auhsdidcoiowjd.png)
![[Pasted image 20240107132328.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/sdhaksdhchwqdh.png)
![[Pasted image 20240107142211.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/dahajkdhjwhkdh.png)
![[Pasted image 20240107141333.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/aiduhiashciopwidjiwqh.png)
![[Pasted image 20240107141837.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/gagssshgjhgawjdhgwj.png)
![[Pasted image 20240107143812.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/awoidoiasdoijwo.png)
![[Pasted image 20240107143829.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/ahwduhisauhdw.png)
![[Pasted image 20240107155414.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/aiodiaswjhdoiqw.png)
![[Pasted image 20240107155430.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/aidhiauwhiduhaiw.png)
![[Pasted image 20240107160219.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/aduwhakhdcwhadhuiwa.png)
![[Pasted image 20240107154416.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/waouidoiahsoidhoiw.png)
![[Pasted image 20240107154425.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/haoidhawoidijaj.png)
![[Pasted image 20240107154502.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/ahdiuahsudhciowoiado.png)
![[Pasted image 20240107154448.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/agdisughiduiuwgau.png)
![[Pasted image 20240107155046.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/dajciojadijwiajodija.png)
![[Pasted image 20240107155114.png]](https://testingcf.jsdelivr.net/gh/huanxueshengmou/picture-host/jakdkasjhdkjhwkja.png)


















