我正在使用Windows 7 64位QT 5.9.1和编译器MSCV 2017 64位。
我正在尝试在此环境中构建一个32位应用程序并链接到32位库,但我似乎无法与正确的选项组合进行对抗以实现此目标,也不知道这是否可行。
我见过一些使用
的解决方案TARGET = 32bit_binary
QMAKE_CXXFLAGS + = -m32
但我似乎无法弄清楚如何使其适应这种环境。有小费吗?
编辑:我还应该提到我没有互联网访问权限,也没有我正在使用的机器的管理员权限,因此无法安装新版本。
我的项目也是一个包含3个不同.pro文件的子目录项目。当我对一个专业文件进行一次更改时,我通常会将更改应用于所有这些文件。
编辑2:这是为了解决错误
LNK4272:库机器类型'x86'与目标机器类型'x64'
冲突LNK2019:函数
中引用的未解析的外部符号我相信一旦我能用32位编译它,这些错误就会消失,但我不确定是不是这样。
编辑3:我确实有一个32位版本的qt,但它在MINGW中,所以它无法正确找到QMAKE_MSC_VER等等。如果有任何关于如何使其适用于MSCV2017的提示,将不胜感激。
答案 0 :(得分:2)
要解决此问题,您需要一个32位套件用于Qt。为此,您必须转到Tools > Options > Build & Run > Kits
。但是,如果您刚安装了Qt 64位,则该套件很可能无法使用。因此,您应该从Start -> Programs -> Qt -> Qt Maintenance Tool
启动Qt维护工具。从这里开始,您必须跳过Qt登录,除非您使用的是Qt的商业版本,然后单击Add or remove components
。现在您应该选择所需的套件(Qt 32位),Qt将自动安装(se)套件。完成后,您可以返回Kits菜单并添加它们。
答案 1 :(得分:1)
您应该在Qt Creator中创建一个32位工具包以生成32位可执行文件。
要配置您的工具包,请转到:Tools > Options > Build & Run > Kits
。
之后,您可以激活项目的工具包。
答案 2 :(得分:0)
我相信放入.pro文件的规范文本将是:
CONFIG -= x86_64
CONFIG += x86
(第一行确保不会发生64位二进制文件的构建,第二行确保将构建32位二进制文件)