git - 在 C++ 二进制文件中嵌入 git 描述字符串

标签 git gcc g++

如何将 git describe 命令的结果嵌入到我的 C++ 二进制文件中,以便我可以在运行时访问它。

我知道我可以做这样的事情

g++ -DVERSION_NUMBER=2345

然后在我的代码中我可以这样做:

std::cout << VERSION_NUMBER << std::endl;

这很好,但如果版本号的值是一个字符串(例如 git describe 命令的输出),则无法使用。

那么有没有办法做这样的事情呢?

谢谢。

最佳答案

我也想做同样的事情。通过使用 GNU Make 的“shell”命令,我能够让 -D 标志正常工作:

生成文件:

VERSION=\"$(shell git describe)\"
CFLAGS=-DVERSION_NUMBER=$(VERSION) # etc

然后在代码中我可以毫无问题地引用 VERSION_NUMBER 定义,例如

测试.c:

printf("Version string: %s\n", VERSION_NUMBER);

关于git - 在 C++ 二进制文件中嵌入 git 描述字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6667216/

相关文章:

git merge -s recursive -X ours vs git merge -s ours?

git:自动修复已更改行所属的提交

eclipse - 如何解决 EGit 中的冲突

c++ - SmartGit (git) 幽灵修改

c - 从共享库创建可执行文件的命令差异

c++ - g++小程序中的内部编译器错误

c++ - 如何在旧版本的 gcc 系统上动态链接到 libc.so.6、libstdc++.so.6 的本地拷贝

android - 在 Android : can't compile because of missing "GLES_CM" 上使用 SDL

C++ MySQL++ 未定义对 dlclose 的引用

c++ - 了解 Valgrind 输出