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 | # 创建多个变量 |
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果