我将git用作我的c++项目的版本跟踪器。

有时我需要重复计算,我想知道我使用了哪个版本的程序。

将提交的#个内容放入主可执行文件的好方法是什么?换一种说法。我希望程序在运行程序时在介绍性消息中告诉我当前提交的编号。

我能想到的一种方法是从 shell 制作C++程序午餐“git log”并提取提交号,但是我不确定在make期间如何做。

(我使用linux)

最佳答案

可能最简单的方法是在您的makefile中添加一条规则,以使用当前git commit ID生成.c文件:

gitversion.c: .git/HEAD .git/index
    echo "const char *gitversion = \"$(shell git rev-parse HEAD)\";" > $@

现在,只需像往常一样将gitversion.c添加到您的构建过程即可。确保在make clean上将其删除,然后将其添加到.gitignore,以免意外将其添加到git存储库中。将extern const char *gitversion;添加到 header 中的某个位置,您可以像这样访问它。

07-24 12:56