c++ - 使用 scons 管理版本的最佳实践?

标签 c++ qt scons

我希望我的 Qt/C++ 应用程序知道它是哪个版本。它应该知道不是来自一些配置文件,而是编译成应用程序二进制文件的版本号。版本本身就是像“X.Y.Z”这样的字符串,其中X是主版本号,Y是次版本号,Z是SVN下的修订版(或者SVN下的修订号减去版本号“X.Y.0”出来时的修订号) ).您认为使用 scons 实现此目的的最简单方法是什么?

最佳答案

SCons 具有用于生成文件的SubstfileTextfile 构建器。因此,创建一个函数来计算版本(使用 pysvn 或通过调用 svn 命令)并使用 Substfile (从文件中获取模板)将其输出写入文件或Textfile(只写提供的内容)。然后编译该文件并将其与应用程序的其余部分链接。

该文件应该是一个源文件(不是头文件),其内容如下(假设是 C/C++,但同样的技术适用于任何语言):

char *VERSION = "X.Y.Z";

(以及您想要的任何其他替代格式)并声明

extern char *VERSION;

在某个地方,只有一个文件会被重新编译并重新链接应用程序(无论如何它都会重新链接,因为其他一些源可能也发生了变化,对吧)。

关于c++ - 使用 scons 管理版本的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5269102/

相关文章:

c++ - 为什么在使用 QString::right 的字符串开头省略了逗号?

c++ - Qt编程: serial port communication module/plugin

linux - 编辑scons文件时如何让vim高亮为python?

c++ - 无论对象变量类型如何,如何对对象数组进行排序

c++ - 模板类的链接器错误

c++ - 什么是关于国际化和本地化的良好介绍和教程?

c++ - 在 C++ 中呈现 SWF 文件

c++ - 如何将具有透明度的 QImage 放到剪贴板上供另一个应用程序使用?

c - 让 Scons 意识到我的链接描述文件已经改变

SCons:调用 Makefile 项目的构建