我想知道,通过C预处理器,是否可以有一个在每次编译代码时自动递增的宏。 就好像它是代码编译时间的计数器一样。我需要确定它属于哪个构建的二进制文件。
例如,我想在代码开头的 printf 中使用它,这样当我启动程序时我就知道它属于哪个版本。 到目前为止,我都是手动完成的,手动定义宏并手动递增它,就好像它是版本号一样,但这很烦人并且是错误的来源,因为很容易忘记在启动编译之前手动递增它。
有没有办法自动执行此操作?
如果通过 C 预处理器,可以有一个在每次编译代码时自动递增的宏
没有。
有没有办法自动执行此操作?
没有。
我想在代码开头的 printf 中使用它,这样当我启动程序时我就知道它属于哪个版本
如果您使用 CI/CD 系统,通常会有一个变量,例如 gitlab CI_JOB_ID 或 jenkins BUILD_NUMBER。在本地,我只会使用
__DATE__
或获取 git describe
。
到目前为止,我都是手动完成的,手动定义宏并手动递增它,就好像它是版本号一样,
所以为你编写一个程序。通常,这样的程序是在构建系统环境中编写的,在用于编译程序的 CMake 或 Bazel 或 Makefile 脚本中。