在使用Qt项目版本号(Version Numbers in a project with Qt)

2019-07-03 16:57发布

版本号都需要各地项目; 在安装程序,代码,工具链等我鄙视重复。 我希望我的版本号将被存储在一个中央权威的位置。

我与C / C ++的工作,并在各种平台上使用Qt。 在Qt,QMAKE项目指定喜欢的版本号:

VERSION = 1.2.3

在代码中,我使用类似像version.h中头部:

#define VERSION_MAJ 1
#define VERSION_MIN 2
#define VERSION_REV 3
#define VERSION_STRING \"VERSION_MAJ\" "." \"VERSION_MIN\" "." \"VERSION_REV\"

我安装的工具链有对C预处理支持,让我可以使用version.h中指定的版本相同。 不过,我不知道如何qmake将使用相同的版本号。 我以为我可以预处理亲文件,但作为#字符意味着亲文件和注释的C预处理器会翻倒,将无法正常工作。

任何人都知道的一个很好的方式,以保持我的版本号集中?

Answer 1:

如果你想成为能够存储在C头文件的版本号,你可以这样做,然后将它们导入到项目文件中的Qt工程变量。 下面喜欢的东西应该工作:

version.h中:

#define MY_MAJOR_VERSION 3
#define MY_MINOR_VERSION 1

的.pro

HEADERS  += Version.h

VERSION_MAJOR = MY_MAJOR_VERSION
VERSION_MINOR = MY_MINOR_VERSION

做这样一轮的好处是,你就可以使用你的权威的头文件,如果你需要编译项目从Qt的远的其他部分。



Answer 2:

我用这样的事情在我的构建系统

#.pro file
#Application version
VERSION_MAJOR = 1
VERSION_MINOR = 0
VERSION_BUILD = 0

DEFINES += "VERSION_MAJOR=$$VERSION_MAJOR"\
       "VERSION_MINOR=$$VERSION_MINOR"\
       "VERSION_BUILD=$$VERSION_BUILD"

#Target version
VERSION = $${VERSION_MAJOR}.$${VERSION_MINOR}.$${VERSION_BUILD}

之后,你可以使用VERSION_MAJOR和其他人在你的应用程序正常宏。



文章来源: Version Numbers in a project with Qt