当前位置: 首页 > news >正文

CMake 中的置变量

在 CMake 中,变量是存储和传递信息的重要方式。以下是一些常用的 CMake 变量,以表格形式列出,包括它们的名称、含义和常见用途:

变量名称含义常见用途
CMAKE_CURRENT_SOURCE_DIR当前处理的 CMakeLists.txt 文件所在的源代码目录的绝对路径引用当前目录下的文件和子目录
CMAKE_SOURCE_DIR项目的根目录(顶级 CMakeLists.txt 文件所在的目录)的绝对路径引用项目根目录下的文件和子目录
CMAKE_CURRENT_BINARY_DIR当前构建目录的绝对路径生成输出文件、中间文件或临时文件
CMAKE_BINARY_DIR项目的根构建目录的绝对路径生成项目级别的输出文件或临时文件
CMAKE_BUILD_TYPE当前构建类型(如 DebugRelease 等)控制编译器的优化和调试选项
CMAKE_CXX_COMPILERC++ 编译器的路径指定 C++ 编译器
CMAKE_C_COMPILERC 编译器的路径指定 C 编译器
CMAKE_LINKER链接器的路径指定链接器
CMAKE_AR静态库归档工具的路径指定静态库归档工具
CMAKE_CXX_FLAGSC++ 编译器的全局标志设置全局 C++ 编译器标志
CMAKE_C_FLAGSC 编译器的全局标志设置全局 C 编译器标志
CMAKE_EXE_LINKER_FLAGS可执行文件链接器标志设置可执行文件的链接器标志
CMAKE_SHARED_LINKER_FLAGS共享库链接器标志设置共享库的链接器标志
CMAKE_STATIC_LINKER_FLAGS静态库链接器标志设置静态库的链接器标志
CMAKE_MODULE_PATH模块搜索路径添加自定义模块的搜索路径
CMAKE_PREFIX_PATH包搜索路径添加自定义包的搜索路径
CMAKE_INCLUDE_PATH包头文件搜索路径添加自定义头文件的搜索路径
CMAKE_LIBRARY_PATH包库文件搜索路径添加自定义库文件的搜索路径
CMAKE_INSTALL_PREFIX安装路径前缀设置默认的安装路径
CMAKE_BUILD_WITH_INSTALL_RPATH是否在构建时使用安装路径的 RPATH控制构建时的 RPATH 设置
CMAKE_INSTALL_RPATH安装时的 RPATH设置安装后的运行时库路径
CMAKE_INSTALL_RPATH_USE_LINK_PATH是否使用链接路径作为安装 RPATH控制安装 RPATH 的设置
CMAKE_POSITION_INDEPENDENT_CODE是否生成位置无关代码控制是否生成位置无关代码(如 -fPIC
CMAKE_CXX_STANDARDC++ 标准版本设置目标的 C++ 标准版本(如 111417 等)
CMAKE_CXX_STANDARD_REQUIRED是否强制使用指定的 C++ 标准确保编译器支持指定的 C++ 标准
CMAKE_CXX_EXTENSIONS是否启用 C++ 编译器扩展控制是否启用编译器特定的扩展(如 gnu++11
CMAKE_DEBUG_POSTFIX调试版本的后缀设置调试版本的目标文件后缀
CMAKE_RELEASE_POSTFIX发布版本的后缀设置发布版本的目标文件后缀
CMAKE_SIZEOF_VOID_P指针大小(字节)获取目标平台的指针大小
CMAKE_SYSTEM_NAME系统名称(如 LinuxWindowsDarwin 等)获取目标系统的名称
CMAKE_SYSTEM_VERSION系统版本获取目标系统的版本
CMAKE_SYSTEM_PROCESSOR系统处理器架构获取目标系统的处理器架构
CMAKE_HOST_SYSTEM_NAME主机系统名称获取主机系统的名称
CMAKE_HOST_SYSTEM_VERSION主机系统版本获取主机系统的版本
CMAKE_HOST_SYSTEM_PROCESSOR主机系统处理器架构获取主机系统的处理器架构

说明

  • 源目录变量
    • CMAKE_CURRENT_SOURCE_DIRCMAKE_SOURCE_DIR 是用于引用源代码目录的变量。CMAKE_CURRENT_SOURCE_DIR 是当前处理的 CMakeLists.txt 文件所在的目录,而 CMAKE_SOURCE_DIR 是项目的根目录。
  • 构建目录变量
    • CMAKE_CURRENT_BINARY_DIRCMAKE_BINARY_DIR 是用于引用构建目录的变量。CMAKE_CURRENT_BINARY_DIR 是当前构建目录,而 CMAKE_BINARY_DIR 是项目的根构建目录。
  • 编译器变量
    • CMAKE_CXX_COMPILERCMAKE_C_COMPILERCMAKE_LINKER 等变量用于指定编译器和链接器的路径。
  • 编译器标志变量
    • CMAKE_CXX_FLAGSCMAKE_C_FLAGSCMAKE_EXE_LINKER_FLAGS 等变量用于设置全局编译器和链接器标志。
  • 路径变量
    • CMAKE_MODULE_PATHCMAKE_PREFIX_PATHCMAKE_INCLUDE_PATH 等变量用于设置模块、包和头文件的搜索路径。
  • 安装路径变量
    • CMAKE_INSTALL_PREFIXCMAKE_INSTALL_RPATH 等变量用于控制安装路径和运行时库路径。
  • 目标属性变量
    • CMAKE_CXX_STANDARDCMAKE_DEBUG_POSTFIX 等变量用于设置目标的属性,如 C++ 标准版本和调试版本的后缀。
  • 系统信息变量
    • CMAKE_SYSTEM_NAMECMAKE_SYSTEM_VERSIONCMAKE_SYSTEM_PROCESSOR 等变量用于获取目标系统的相关信息。

这些变量在编写 CMake 脚本时非常有用,可以帮助你编写可移植、灵活且易于维护的构建系统。如果你有更多问题或需要进一步的解释,请随时告诉我!

http://www.dtcms.com/a/107698.html

相关文章:

  • 在服务器里面磁盘分区很简单吗?
  • 51单片机的五类指令(三)——逻辑操作类指令
  • 【图形API】片段着色器自动计算LOD
  • 蓝桥杯嵌入式16届—— LED模块
  • 【ABAP】REST/HTTP技术(一)
  • 进程间的通信
  • 批量删除 txt/html/json/xml/csv 等文本文件中的重复行
  • 2025年Axure RP9无法免费使用Axure Cloud的解决方案
  • IEOSE北京国际教育留学展 留学盛宴4月亮相国会
  • c++进阶之----orderedmap和unorderedmap
  • 不同向量数据库(FAISS / Pinecone / Weaviate)在 RAG 中的优缺点
  • 生成式AI应用带来持续升级的网络安全风险
  • Linux系统CentOS 6.3安装图文详解
  • 嵌入式调试进阶:从手动到自动的HardFault破案指南
  • qt实现功率谱和瀑布图
  • Kubernetes APIServer 可观测最佳实践
  • Telnet协议详解:本质与操作逻辑
  • 路由协议分类精讲
  • TrollStore(巨魔商店)介绍及操作手册
  • C 标准库 - `<ctype.h>`
  • Vue el-table-column内el-tooltip识别换行符 \n
  • Mysql的安装
  • java 使用 spring AI 实战MCP
  • centos-LLM+EmbeddingModel+VectorDB-简单模型
  • Aliee,Bengio and Theis:细胞数据上的因果机器学习
  • 代理模式-spring关键设计模式,bean的增强,AOP的实现
  • Spring SpringBoot 细节总结
  • 【ROS】 CMakeLists 文件详解
  • 大数据Spark(五十六):Spark生态模块与运行模式
  • 《 C语言中的变长数组:灵活而强大的特性》