gpt4 book ai didi

c++ - 自动构建 ID

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:56 25 4
gpt4 key购买 nike

我们正在寻找一种在我们的构建中自动包含某种构建 ID 的方法。这需要是可移植的(VC++,Linux 和 Mac 上的 g++)和自动的。 VC++ 是最重要的,因为在其他环境中我们使用自定义 Python 构建脚本,所以我可以做任何我想做的事。

我们使用 SVN,因此我们正在考虑使用 svnversion 的输出将修订写入 header 并将其包含在内。这有问题:如果我们将文件放在 SVN 中,它每次都会显示为已修改,但这将是一个多余的提交,并且在某种意义上会产生一个不断增加修订的无限循环。如果我们不将文件放在 SVN 中,而只是将其创建为预构建步骤,则源代码将不完整,因为它们需要预构建步骤或 Makefile 来生成该文件。

我们也可以使用 __DATE__ 但我们不能保证使用 __DATE__ 的文件(即将其写入日志文件)如果其他文件会被编译已修改 - 除非我们“触摸”它,否则我们会导致项目始终过时。我们可以将其作为预构建步骤进行处理,因此仅当项目的其余部分已过时时才会对其进行处理,从而不会导致虚假编译,但如果 VC++ 在 预构建步骤,这是行不通的(带有 __DATE__ 的文件不会被编译)

有什么有趣的想法吗?

最佳答案

我们正在使用 svnversion 的输出,写入头文件并包含在内。我们从存储库中省略文件并在预构建步骤中创建它;这对我们来说效果很好。 (我不确定您为什么反对使用预构建步骤?)

我们目前正在使用 Perl 脚本将 svnversion 的输出转换为头文件;后来我发现 TortoiseSVN 包含一个 subwcrev 命令(也已移植到 Linux),它可以做很多相同的事情。

关于c++ - 自动构建 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/407074/

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