RC_FILE 在使用 MingW 时不与 QCoreApplication::applicationVersion 一起工作

RC_FILE don't work with QCoreApplication::applicationVersion when using MingW

我创建了一个简单的 rc 文件并放入 .pro:

使用MSVC2015 32位, applicationVersion returns:

applicationVersion: "1.0.0.1"

但使用 Mingw 5.3.0 returns 空:

applicationVersion: ""

这是 Mingw 问题还是 Qt 问题,还是我忘记向 "pro" 添加内容?

您或许应该在其他地方定义您的版本号,并在 .rc 文件中使用这些定义。我为此使用了一个头文件,src/appversion.h,它包含:

#define MY_APP_VERSION "1.1.0"
/* MS Windows executable resource versions. */
#define W32_RC_FILEVERSION 1,1,0,00
#define W32_RC_PRODUCTVERSION 1,1,0,00

然后我在我的 .rc 文件中使用这些定义:

#include "src/appversion.h"

/* ... */

FILEVERSION W32_RC_FILEVERSION
PRODUCTVERSION W32_RC_PRODUCTVERSION
FILEFLAGSMASK 0x3fL

/* ... */
VALUE "FileVersion", MY_APP_VERSION
/* ... */

然后,在我实例化一个 QApplication 之后,我设置如下值:

a.setApplicationName(QString::fromLatin1("My App"));
a.setApplicationVersion(QString::fromLatin1(MY_APP_VERSION));