gpt4 book ai didi

c - 根据 git push 的日期自动包含程序版本

转载 作者:太空狗 更新时间:2023-10-29 14:41:58 27 4
gpt4 key购买 nike

我正在用 C 语言开发一个程序,该程序需要包含在 git 存储库中给定分支中执行的最后一次推送的日期和时间,以便对其进行版本控制。

我知道如何从 git 获取数据并使用它以我想要的格式生成版本号。(https://stackoverflow.com/a/51403241/7114946)

问题是我不知道如何将此包含在程序代码中,因为它最终需要在应用程序启动期间“打印”此信息。

我找到了预处理器宏 __TIME____DATE__。我想知道是否还有其他类似的宏来包含一些给定的字符串/数据。

谢谢

编辑:我需要在编译时包含此信息,而不是在将代码上传到 git 时。

最佳答案

您可以在命令行上定义宏:

gcc -DFOO=BAR -c prog.c

类似于 prog.c 中的 #define FOO BAR

您可以将其与 shell 命令插值相结合,以在其中获取外部程序的输出:

gcc -DGIT_TIMESTAMP="\"$(git whateveryourcommandis)\"" prog.c

(转义引号用于使宏扩展为字符串文字。)

然后 prog.c 可以做例如:

printf("my git timestamp is %s\n", GIT_TIMESTAMP);

关于c - 根据 git push 的日期自动包含程序版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51557200/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com