mingw32-qt-win

Kevin Kofler kevin.kofler at chello.at
Thu Mar 12 16:35:09 UTC 2009


Thomas Sailer wrote:
> I've updated the mingw32-qt-win package to qt 4.5.0 final release.

Why the "-win"? Why not just call it mingw32-qt? Nobody is going to build
Qt/X11 for MinGW, so the "-win" is redundant and it's inconsistent with the
native package. I'd much prefer this being called just mingw32-qt.

> I also enabled building of QtSvg, QtSql, and Qt3Support.

We'll also need at least QtDBus to build mingw32-kdelibs at some point. :-)
Supposedly they're working on supporting cross-compiling KDE for 4.3, let's
hope it will work out.

That said, it needs a mingw32-dbus based on the windbus sources to build.

> 1) QMAKESPEC should be exported. Just setting it for the run of
> qmake-qt4 is often not enough, as make sometimes causes qmake-qt4 to be
> run in subdirectories, and these runs need the QMAKESPEC variable too.

Yeah, qmake wasn't really designed for cross-compiling, so some hacking is
needed to get things to work.

> 2) qmake-qt4 somehow forgets to add "4" to the library names, i.e. it
> ends up telling the linker to "-lQtCore" instead of "-lQtCore4", which
> obviously fails. I tried to find the root cause, but didn't manage to
> reverse engineer !#@* qmake in a reasonable time. My workaround was to
> add QT_LIBINFIX=4 as argument to qmake-qt4.
> 
> i.e.:
> export QMAKESPEC=fedora-win32-cross
> qmake-qt4 -win32 QT_LIBINFIX=4

Have you tried setting this in the qmake.conf in the mkspecs?

> 3) qmake-qt4 insists on calling the resource
> compiler /usr/lib64/qt4/bin/rcc.exe. My workaround was to apply a perl
> script to the Makefile to remove the .exe.

You need to fix the setting for QMAKE_RCC in the mkspecs (qmake.conf). Some
other executable names also need to be adjusted. Here's a working
qmake.conf (but last tested with Qt 4.3 or 4.4, so it may need updating for
4.5):
http://tigcc-linux.cvs.sourceforge.net/viewvc/tigcc-linux/ktigcc/mingw/mkspecs/win32-cross-g++/qmake.conf?revision=1.3&view=markup

        Kevin Kofler




More information about the mingw mailing list