小编Lev*_*uck的帖子

使用来自其他定义的部分定义字符串(非字符串)

我正在尝试创建一个版本字符串,在使用时将其视为char*.我正在使用

#define VERSION_MAJOR @cmakeproject_VERSION_MAJOR@
#define VERSION_MINOR @cmakeproject_VERSION_MINOR@
#define VERSION_PATCH @cmakeproject_VERSION_PATCH@
#define VERSION_STRING "" VERSION_MAJOR "." VERSION_MINOR "." VERSION_PATCH
Run Code Online (Sandbox Code Playgroud)

在cmake配置之后,这将是

#define VERSION_MAJOR 1
#define VERSION_MINOR 2
#define VERSION_PATCH 3
#define VERSION_STRING "" VERSION_MAJOR "." VERSION_MINOR "." VERSION_PATCH
Run Code Online (Sandbox Code Playgroud)

据我所知,编译时的VERSION_STRING最终会看起来像

"" 1 "." 2 "." 3
Run Code Online (Sandbox Code Playgroud)

并且,这会导致错误:在数字常量之前预期')'

有没有办法使它在编译时VERSION_STRING看起来像"1.2.3"?

c++ string c-preprocessor

3
推荐指数
1
解决办法
2319
查看次数

标签 统计

c++ ×1

c-preprocessor ×1

string ×1