cmake如何保存在编译时候才读取外部传入的应用版本号/编译时间,应用名呢

本文介绍了如何在CMake构建C++项目时,通过configure_file功能动态获取应用的版本号和名称,实现在编译时传递这些值并用于生成包含预定义宏的app_cmake_define.h文件,方便在源代码中使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述:cmake构建c/c++项目时候

有时候我们需要在代码中动态地读取应用的版本号,应用的名称,应用的编译时间,这时候考虑如何读取呢?在编译时候才确定的版本号和应用名称,你不可能在写代码时候就写死版本号/或者时间,可以利用CMake的configure_file来实现,主要原理就是在cmake时候才传入可变的应用名和版本号/时间

测试项目结构

main.cpp文件是使用到app_cmake_define.h里面定义的宏变量,app_cmake_define.h是cmake过程中利用configure_file指令来生成的文件

  1. 准备app_cmake_define.h.in文件 ,内容为
// app version config
#define APP_VERSION_STR "${APP_VERSION_STR}"
#define APP_NAME_STR "${APP_NAME_STR}"

     2.编写CMakeLists.txt

cmake_minimum_required(VERSION 3.6)

set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "My multi config types" FORCE)

if(NOT APP_NAME)
	set(APP_NAME MyAppTest)
endif()
project(${APP_NA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值