楼主: Zimer220312
142 0

[作业] CMake系统预定义的变量介绍说明 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

80%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
30 点
帖子
2
精华
0
在线时间
0 小时
注册时间
2018-8-21
最后登录
2018-8-21

楼主
Zimer220312 发表于 2025-11-21 20:01:30 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

文章目录

  • 项目和源码路径变量
  • 构建和安装路径变量
  • 编译器和工具链变量
  • 系统信息变量
  • 编译和链接标志变量
  • 查找库和包的变量
  • 其他常用变量

CMake 是一个跨平台的自动化构建系统,广泛应用于 C/C++ 及其他语言的项目构建。在 CMake 脚本中,变量起着关键作用,用于存储路径、编译器标志和库名称等信息。CMake 提供了许多预定义的变量,这些变量可以被项目使用或修改以控制构建过程。

项目和源码路径变量

CMAKE_SOURCE_DIR

: 项目顶层源码目录的绝对路径。对于多级项目,这是最顶层的

CMAKE_SOURCE_DIR

PROJECT_SOURCE_DIR

: 当前项目的源码目录。如果项目使用

project()
命令定义,这通常是调用
project()
时的源码目录。

CMAKE_CURRENT_SOURCE_DIR

: 当前正在处理的

CMakeLists.txt
文件所在的源码目录。

CMAKE_BINARY_DIR

: 项目顶层构建目录的绝对路径。

PROJECT_BINARY_DIR

: 当前项目的构建目录。

CMAKE_CURRENT_BINARY_DIR

: 当前正在处理的

CMAKE_SOURCE_DIR
对应的构建目录。

构建和安装路径变量

CMAKE_BUILD_TYPE

: 指定构建类型(如

Debug
,
Release
,
RelWithDebInfo
,
MinSizeRel
)。这会影响编译器的优化标志和调试信息。

CMAKE_INSTALL_PREFIX

: 安装目标的根目录(例如

/usr/local
C:\Program Files\MyApp
)。

install()
命令会相对于此路径进行安装。

CMAKE_LIBRARY_OUTPUT_DIRECTORY

: 构建的库文件(动态库或静态库)的输出目录。

CMAKE_RUNTIME_OUTPUT_DIRECTORY

: 构建的可执行文件的输出目录。

CMAKE_ARCHIVE_OUTPUT_DIRECTORY

: 构建的存档文件(如静态库

.lib
,
.a
)的输出目录。

编译器和工具链变量

CMAKE_C_COMPILER

: C 编译器的完整路径。

CMAKE_CXX_COMPILER

: C++ 编译器的完整路径。

CMAKE_Fortran_COMPILER

: Fortran 编译器的完整路径(如果启用 Fortran 支持)。

CMAKE_LINKER

: 链接器的完整路径。

CMAKE_AR

: 静态库归档工具(ar)的路径。

CMAKE_RANLIB

: 为静态库生成索引的工具(ranlib)的路径。

系统信息变量

CMAKE_SYSTEM_NAME

: 操作系统名称(如

Linux
,
Windows
,
Darwin
)。

CMAKE_SYSTEM_VERSION

: 操作系统的版本号。

CMAKE_SYSTEM_PROCESSOR

: 目标处理器架构(如

x86_64
,
armv7l
)。

WIN32

: 如果目标系统是 Windows,则为

TRUE

UNIX

: 如果目标系统是 Unix 类系统(包括 Linux, macOS),则为

TRUE

APPLE

: 如果目标系统是 Apple macOS,则为

TRUE

编译和链接标志变量

CMAKE_C_FLAGS

: 传递给 C 编译器的通用标志。

CMAKE_CXX_FLAGS

: 传递给 C++ 编译器的通用标志。

CMAKE_C_FLAGS_<CONFIG>

: 传递给 C 编译器的特定配置标志(如

CMAKE_C_FLAGS_DEBUG
,
CMAKE_C_FLAGS_RELEASE
)。

CMAKE_CXX_FLAGS_<CONFIG>

: 传递给 C++ 编译器的特定配置标志。

CMAKE_EXE_LINKER_FLAGS

: 链接可执行文件时传递给链接器的标志。

CMAKE_SHARED_LINKER_FLAGS

: 链接动态库时传递给链接器的标志。

查找库和包的变量

CMAKE_PREFIX_PATH

: 一个路径列表,CMake 会在这些路径下查找库、头文件等。这对于指定非标准安装位置的依赖库非常有用(例如你提到的 Boost 库路径配置)。

CMAKE_MODULE_PATH

: 一个路径列表,CMake 会在这些路径下查找自定义的

.cmake
模块文件。

<PackageName>_DIR

: 指定特定包的查找路径。例如,

Boost_DIR
可以用来告诉 CMake 在哪里查找 Boost 库的配置文件。

其他常用变量

CMAKE_ROOT

: CMake 系统安装的根目录。

CMAKE_CURRENT_LIST_FILE

: 当前正在被处理的 CMake 文件的完整路径。

CMAKE_CURRENT_LIST_DIR

: 当前正在被处理的 CMake 文件所在的目录。

PROJECT_NAME

: 通过

project()
命令设置的项目名称。

PROJECT_VERSION

: 通过

project()
命令设置的项目版本。

这些变量是 CMake 构建系统的核心组成部分,熟练掌握它们对于编写高效、灵活的

CMakeLists.txt
文件至关重要。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:make Mak directory Processor Director

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-5 23:18