Building Qt on Windows

Download the sources from http://qt.nokia.com/downloads (choose “LGPL” and “Framework Only”) and run the installer. Accept the default answer to every question and ignore the warning about using the wrong MinGW version (the one Qt wants to use is prehistoric and completely unusable).

There is (at least) one known bug in 4.4.x, which is that Qt includes incorrect prototypes for Windows's atomic increment / decrement / compare / exchange primitives, see for instance:

http://lists-archives.org/mingw-users/11846-problem-compile-qt-4-4-2-with-latest-w32api.html

http://bugreports.qt.nokia.com/browse/QTBUG-5670 which indicates that this may be fixed in the upcoming 4.6.0 (or then again, it may not).

As a workaround, edit C:\Qt\4.4.0\src\corelib\arch\qatomic_windows.h (or the equivalent on your system). Add #if 0 before line 393 and the corresponding #endif before line 400, so the entire block looks like this:

#if 0
extern "C" {
__declspec(dllimport) long __stdcall InterlockedCompareExchange(long *, long, long);
__declspec(dllimport) long __stdcall InterlockedIncrement(long *);
__declspec(dllimport) long __stdcall InterlockedDecrement(long *);
__declspec(dllimport) long __stdcall InterlockedExchange(long *, long);
__declspec(dllimport) long __stdcall InterlockedExchangeAdd(long *, long);
}
#endif