在 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_COMPILER | C++ 编译器的路径 | 指定 C++ 编译器 |
CMAKE_C_COMPILER | C 编译器的路径 | 指定 C 编译器 |
CMAKE_LINKER | 链接器的路径 | 指定链接器 |
CMAKE_AR | 静态库归档工具的路径 | 指定静态库归档工具 |
CMAKE_CXX_FLAGS | C++ 编译器的全局标志 | 设置全局 C++ 编译器标志 |
CMAKE_C_FLAGS | C 编译器的全局标志 | 设置全局 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_STANDARD | C++ 标准版本 | 设置目标的 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 脚本时非常有用,可以帮助你编写可移植、灵活且易于维护的构建系统。如果你有更多问题或需要进一步的解释,请随时告诉我!