在64位Linux操作系统上编译32位Qt应用程序

3

我知道之前这个问题已经在这里问过了,但是我的情况稍有不同。

我有一个64位的操作系统。我安装了i686和x86_64 qt开发包。我想编译一个32位的二进制文件。我已经添加了

QMAKE_CXXFLAGS += -m32

将内容添加到.pro文件中。(使用i686软件包中的qmake),但生成的Makefile仍然使用64位引用。
CFLAGS   = -m32 [...] -m64 [...]
INCPATH  = -I/usr/lib64/qt-3.3/mkspecs/default
Makefile: MyApp.pro  /usr/lib64/qt-3.3/mkspecs/default/qmake.conf /usr/lib64/qt-3.3/lib/libqt-mt.prl

我做错了什么?(Oracle Linux 6.9,Qt 3.3,gcc 4.4.7)

首先针对相应的Qt版本运行qmake。这应该足以实现所需的目标,而无需更改*.pro文件。 - Marek R
1
根据qmake文档,您可以使用-spec开关指定Qt版本,其中包括qmake.conf文件所在的相应Qt目录或平台编译器组合的名称(请参阅QMAKESPEC文档)。 - Marek R
1个回答

3

在很长一段时间后,我偶然找到了答案。我需要更改一组环境变量,从

QTDIR=/usr/lib64/qt-3.3
QTINC=/usr/lib64/qt-3.3/include
QTLIB=/usr/lib64/qt-3.3/lib

为了

QTDIR=/usr/lib/qt-3.3
QTINC=/usr/lib/qt-3.3/include
QTLIB=/usr/lib/qt-3.3/lib

而且(因为我正在使用 x86_64 的 gcc 软件包),需要在我的 .pro 文件中添加以下内容:

QMAKE_LFLAGS += -m32
QMAKE_CXXFLAGS += -m32

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接