You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在终端构建CMake项目时获取产品版本

在终端通过CMake构建时获取项目版本的方法

当然没问题!你已经在CMakeLists.txt里通过project(sayProject VERSION "1.0")声明了项目版本,下面给你几种在终端构建过程中获取版本信息的实用方法:

方法1:配置阶段直接打印版本

你可以在执行CMake配置命令时,通过自定义参数触发版本信息输出。首先在你的CMakeLists.txt里添加这段代码:

# 当传入PRINT_VERSION参数时,打印版本信息
if(PRINT_VERSION)
    message(STATUS "当前项目名称:${PROJECT_NAME}")
    message(STATUS "完整版本号:${PROJECT_VERSION}")
    message(STATUS "主版本号:${PROJECT_VERSION_MAJOR}")
    message(STATUS "次版本号:${PROJECT_VERSION_MINOR}")
    # 如果声明了PATCH版本,也可以打印${PROJECT_VERSION_PATCH}
endif()

然后在终端执行CMake配置命令时加上-DPRINT_VERSION=ON:

cmake -S . -B build -DPRINT_VERSION=ON

这样在配置过程中,终端就会直接输出所有你需要的版本信息,无需完成构建。

方法2:生成版本文件供终端查看

如果希望版本信息能持久化保存,方便后续随时查看,可以让CMake自动生成一个版本文件。步骤如下:

  1. 在项目根目录创建一个version.in模板文件,内容如下:
项目名称:@PROJECT_NAME@
完整版本:@PROJECT_VERSION@
主版本:@PROJECT_VERSION_MAJOR@
次版本:@PROJECT_VERSION_MINOR@
  1. 在CMakeLists.txt里添加配置文件生成逻辑:
configure_file(
    ${CMAKE_SOURCE_DIR}/version.in
    ${CMAKE_BINARY_DIR}/version.txt
    @ONLY
)

执行CMake构建后,在build目录下会生成version.txt文件,直接在终端查看即可:

cat build/version.txt

方法3:让编译后的程序输出版本

如果你的项目包含可执行文件,还可以把版本信息编译进程序里,运行程序就能查看。操作如下:

  1. 在CMakeLists.txt中给可执行目标添加编译定义:
add_executable(sayApp main.cpp)
# 将版本信息作为编译宏定义传入
target_compile_definitions(sayApp PRIVATE
    PROJECT_VERSION="${PROJECT_VERSION}"
    PROJECT_VERSION_MAJOR=${PROJECT_VERSION_MAJOR}
)
  1. 在你的main.cpp中添加版本输出逻辑:
#include <iostream>

int main() {
    std::cout << "当前程序版本:" << PROJECT_VERSION << std::endl;
    return 0;
}

完成构建后,在终端运行编译后的程序就能看到版本:

./build/sayApp

内容的提问来源于stack exchange,提问作者Oleg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:29:39