我知道以前曾在这里问过类似的问题,但我的情况略有不同。
我有 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)
很长一段时间后我偶然发现了答案。我必须更改一组环境变量
QTDIR=/usr/lib64/qt-3.3
QTINC=/usr/lib64/qt-3.3/include
QTLIB=/usr/lib64/qt-3.3/lib
to
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)