我将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 中的某个位置,您可以像这样访问它。