在 64 位机器上构建 32 位 Qt 应用程序



我正在使用Windows 7 64位QT 5.9.1和编译器MSCV 2017 64位。

我正在尝试在此环境中构建 32 位应用程序并链接到 32 位库,但我似乎无法对抗正确的选项组合来完成此操作,也不知道这是否可能。

我已经看到一些解决方案使用

目标 = 32bit_binary

QMAKE_CXXFLAGS += -m32

但我似乎无法弄清楚如何使其适应这种环境。有什么提示吗?

编辑:我还应该提到,我没有互联网访问权限,也没有我正在使用的机器上的管理员权限,因此无法安装新版本。

我的项目也是一个包含 3 个不同 .pro 文件的子目录项目。当我对一个专业文件进行一次更改时,我通常会将更改应用于所有文件。

编辑2:这是为了解决错误

LNK4272:库计算机类型"x86"与目标计算机类型"x64"冲突

LNK2019:函数中引用的未解析外部符号

我相信一旦我可以用 32 位编译它,这些错误就会消失,但我不确定是否是这种情况。

编辑3:我确实有一个32位版本的qt,但它在MINGW中,所以它无法正确找到兔子洞中的QMAKE_MSC_VER等等。如果有任何关于如何使其与MSCV2017一起使用的提示,将不胜感激。

要解决此问题,您需要一个用于Qt的32位套件。为此,您必须去Tools > Options > Build & Run > Kits.但是,如果您刚刚安装了Qt 64位,则此套件很可能不可用。因此,您应该从Start -> Programs -> Qt -> Qt Maintenance Tool启动Qt维护工具。从这里开始,您必须跳过Qt登录,除非您使用的是Qt的商业版本,然后单击Add or remove components。现在您应该选择所需的套件(Qt 32位),Qt将自动安装套件。完成此操作后,您可以返回"工具包"菜单并添加它们。

我相信放入 .pro 文件的规范文本是这样的:

CONFIG -= x86_64
CONFIG += x86

(第一行确保不会生成 64 位二进制文件,第二行确保不会生成 32 位二进制文件)

您应该在Qt Creator中创建一个32位工具包以生成32位可执行文件。

要配置套件,请转到:Tools > Options > Build & Run > Kits

之后,您可以激活项目的工具包。

最新更新