跳转到内容
新建笔记

CMake 中的置变量

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

变量名称含义常见用途
CMAKE_CURRENT_SOURCE_DIR当前处理的 CMakeLists.txt 文件所在的源代码目录的绝对路径引用当前目录下的文件和子目录
CMAKE_SOURCE_DIR项目的根目录(顶级 CMakeLists.txt 文件所在的目录)的绝对路径引用项目根目录下的文件和子目录
CMAKE_CURRENT_BINARY_DIR当前构建目录的绝对路径生成输出文件、中间文件或临时文件
CMAKE_BINARY_DIR项目的根构建目录的绝对路径生成项目级别的输出文件或临时文件
CMAKE_BUILD_TYPE当前构建类型(如 Debug、Release 等)控制编译器的优化和调试选项
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++ 标准版本(如 11、14、17 等)
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系统名称(如 Linux、Windows、Darwin 等)获取目标系统的名称
CMAKE_SYSTEM_VERSION系统版本获取目标系统的版本
CMAKE_SYSTEM_PROCESSOR系统处理器架构获取目标系统的处理器架构
CMAKE_HOST_SYSTEM_NAME主机系统名称获取主机系统的名称
CMAKE_HOST_SYSTEM_VERSION主机系统版本获取主机系统的版本
CMAKE_HOST_SYSTEM_PROCESSOR主机系统处理器架构获取主机系统的处理器架构
  • 源目录变量:
    • CMAKE_CURRENT_SOURCE_DIR 和 CMAKE_SOURCE_DIR 是用于引用源代码目录的变量。CMAKE_CURRENT_SOURCE_DIR 是当前处理的 CMakeLists.txt 文件所在的目录,而 CMAKE_SOURCE_DIR 是项目的根目录。
  • 构建目录变量:
    • CMAKE_CURRENT_BINARY_DIR 和 CMAKE_BINARY_DIR 是用于引用构建目录的变量。CMAKE_CURRENT_BINARY_DIR 是当前构建目录,而 CMAKE_BINARY_DIR 是项目的根构建目录。
  • 编译器变量:
    • CMAKE_CXX_COMPILER、CMAKE_C_COMPILER、CMAKE_LINKER 等变量用于指定编译器和链接器的路径。
  • 编译器标志变量:
    • CMAKE_CXX_FLAGS、CMAKE_C_FLAGS、CMAKE_EXE_LINKER_FLAGS 等变量用于设置全局编译器和链接器标志。
  • 路径变量:
    • CMAKE_MODULE_PATH、CMAKE_PREFIX_PATH、CMAKE_INCLUDE_PATH 等变量用于设置模块、包和头文件的搜索路径。
  • 安装路径变量:
    • CMAKE_INSTALL_PREFIX、CMAKE_INSTALL_RPATH 等变量用于控制安装路径和运行时库路径。
  • 目标属性变量:
    • CMAKE_CXX_STANDARD、CMAKE_DEBUG_POSTFIX 等变量用于设置目标的属性,如 C++ 标准版本和调试版本的后缀。
  • 系统信息变量:
    • CMAKE_SYSTEM_NAME、CMAKE_SYSTEM_VERSION、CMAKE_SYSTEM_PROCESSOR 等变量用于获取目标系统的相关信息。

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


来源:CSDN 原文,首次发布于 2025-04-02。