Kolejna wersja Qt, kolejna kompilacja… tym razem budujemy Qt 5.3.2 pod GCC pod Windows, w wydaniu TDM64.
Najpierw – konfiguracja. Ja stworzyłem sobie plik configure.cmd:
cd Qt-5.3.2-gcc-x86_64 set PATH_GCC=C:\gcc\gcc-4.8.1-tdm64 set PATH_PERL=C:\Perl set PATH_PYTHON=C:\Python27 set PATH_ICU=D:\devel\Qt\Qt5_deps\icu set PATH_OPENSSL=D:\devel\Qt\Qt5_deps\openssl-1.0.1e set INCLUDE=%PATH_ICU%\dist\include;%PATH_OPENSSL%\dist\include set LIB=%PATH_ICU%\dist\lib;%PATH_OPENSSL%\dist\lib set QMAKESPEC= set QTDIR= set PATH=%CD%\qtbase\bin;%CD%\gnuwin32\bin;%PATH_GCC%\bin;%PATH_PERL%\bin;%PATH_PYTHON%;%PATH_ICU%\dist\lib;%PATH_OPENSSL%\dist\bin;%SystemRoot%\System32 set MAKE_COMMAND= configure -release -opensource -confirm-license -platform win32-g++ -developer-build -c++11 -opengl desktop -plugin-sql-odbc -qt-style-windowsxp -qt-style-windowsvista -nomake tests -nomake examples -skip qtwebkit -skip qtwebkit-examples -skip qtquick1
i uruchamiam.
Jeśli wszystko przebiegło pomyślnie, pozostało nam wykonać jeszcze jeden szybki fix. Będzie to fix nieelegancki i tylko na potrzeby naszej kompilacji, bez zagłębiania się w prawidłowe rozwiązanie, które zadziała z każdym kompilatorem.
Odnajdujemy plik qtwinextras\src\winextras\winshobjidl_p.h i na samym końcu usuwamy sekcję:
#if (defined _MSC_VER && _MSC_VER < 1600) || defined(Q_CC_MINGW) # if !defined(__MINGW64_VERSION_MAJOR) || !defined(__MINGW64_VERSION_MINOR) || __MINGW64_VERSION_MAJOR * 100 + __MINGW64_VERSION_MINOR < 301 typedef struct SHARDAPPIDINFOLINK { IShellLink *psl; // An IShellLink instance that when launched opens a recently used item in the specified // application. This link is not added to the recent docs folder, but will be added to the // specified application's destination list. PCWSTR pszAppID; // The id of the application that should be associated with this recent doc. } SHARDAPPIDINFOLINK; # endif // !defined(__MINGW64_VERSION_MAJOR) || !defined(__MINGW64_VERSION_MINOR) || __MINGW64_VERSION_MAJOR * 100 + __MINGW64_VERSION_MINOR < 301 #endif
Usuwamy tę sekcję całkowicie. Plik zapisujemy, wracamy do głównego katalogu i zaczynamy budowanie:
mingw32-make
Zbudowane binarki będą, jak zwykle, w katalogu qtbase\bin.