构建计数器C宏

问题描述 投票:0回答:1

我想知道,通过C预处理器,是否可以有一个在每次编译代码时自动递增的宏。 就好像它是代码编译时间的计数器一样。我需要确定它属于哪个构建的二进制文件。

例如,我想在代码开头的 printf 中使用它,这样当我启动程序时我就知道它属于哪个版本。 到目前为止,我都是手动完成的,手动定义宏并手动递增它,就好像它是版本号一样,但这很烦人并且是错误的来源,因为很容易忘记在启动编译之前手动递增它。

有没有办法自动执行此操作?

c
1个回答
0
投票

如果通过 C 预处理器,可以有一个在每次编译代码时自动递增的宏

没有。

有没有办法自动执行此操作?

没有。

我想在代码开头的 printf 中使用它,这样当我启动程序时我就知道它属于哪个版本

如果您使用 CI/CD 系统,通常会有一个变量,例如 gitlab CI_JOB_ID 或 jenkins BUILD_NUMBER。在本地,我只会使用

__DATE__
或获取
git describe

到目前为止,我都是手动完成的,手动定义宏并手动递增它,就好像它是版本号一样,

所以为你编写一个程序。通常,这样的程序是在构建系统环境中编写的,在用于编译程序的 CMake 或 Bazel 或 Makefile 脚本中。

© www.soinside.com 2019 - 2024. All rights reserved.