我试图让我的项目生成一个包含相关编译数据(编译器版本、lib 版本、日期、git 提交等)的文件。所以我的问题是如何使其仅在编译时运行,以便它可以访问所需的信息?
最佳答案
编译日志呢?如果它没有提供足够的信息,您可以创建一个脚本来收集数据并将其打印到文件中。
编译器版本:
- 对于 Visual Studio,您可以检查 this answer .
- 如果您的编译器是 gcc,请使用
gcc --version
。
当前的 git 提交可以通过描述的任何方法 here 获得.
库版本将取决于每种特定情况:编译日志可能包含其中某些库的数据,打印库路径(有时此类目录包含版本号,至少对于某些库而言),等等。
当前日期/时间:
- bash:
日期 +%Y-%m-%d:%H:%M:%S
- Windows 命令行,检查 this answer .
- bash:
最后,该脚本可以作为 makefile 中的最后一步或作为 post-build event 来调用。对于 Visual Studio 项目。
关于c++ - 编译时生成信息文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44268250/