c++ - 如何将 git commit-number 包含到 C++ 可执行文件中?

标签 c++ git makefile

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

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

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

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

(我用的是linux)

最佳答案

可能最简单的方法是在您的 makefile 中添加一条规则以生成具有当前 git 提交 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; 添加到某处的标题中,您可以像这样访问它。

关于c++ - 如何将 git commit-number 包含到 C++ 可执行文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6526451/

相关文章:

c++ - 如何在运行时在 OpenCL 中获取计算单元 ID?

GitLab 和 SSH/HTTP 连接

git - 为什么 Git Merge 不自动生成提交和提交消息?

c++ - 如何编写 makefile 来处理头文件中的更改

c++ - merge_sort什么时候打败quick_sort?

c++ - 在组合框中选择项目时显示格式化文本

c++ - 在不使用 GLSL 的情况下迁移到最新的 OGL

git - .DS_Store 文件重要吗?

c++ - 更改 Eclipse CDT 项目的输出目录

c - 对 `dlsym' 的 undefined reference Learn C The Hard Way