既然您正在尝试获取可执行文件自己的版本,为什么不直接添加一个 呢#define?例如:
version.h
// include guards etc.
#define MY_PROGRAM_VERSION "1.2.3"
Run Code Online (Sandbox Code Playgroud)
要从您的版本中提取版本CMakeLists.txt而不是硬编码,请尝试以下操作:
version.h.template
// include guards etc.
#define MY_PROGRAM_VERSION "${PROJECT_VERSION}"
Run Code Online (Sandbox Code Playgroud)
CMakeLists.txt
cmake_minimum_required(VERSION 3.0) # Use higher if you need, lower won't work.
project(test VERSION 1.2.3) # The one and only place where you define your version!
configure_file(version.h.template version.h)
Run Code Online (Sandbox Code Playgroud)
我假设您已经有类似的project(...)行来配置版本。其中,它设置了一个名为 的 CMake 变量PROJECT_VERSION。
该configure_file调用采用模板,填充 CMake 知道的变量,并将输出写入version.h,这是您#include通常可以做到的。当版本或模板发生更改时,CMake 将重新生成文件。
| 归档时间: |
|
| 查看次数: |
270 次 |
| 最近记录: |