Для выполнения статической сборки Qt4.8 потребуется:
-
Скачать и установить MinGW;
-
Скачать и установить ActivePerl;
-
Скачать и установить OpenSSL;
-
Скачать исходные тексты Qt 4.8;
-
Распаковать исходные тексты в какой-нибудь каталог.
Категорически рекомендуется исключить появление пробелов и/или кириллицы в пути. Далее используем путь D:\static-qt4.
-
Редактировать файл D:\static-qt4\mkspecs\win32-g++\qmake.conf, а именно установить следующие константы равными:
QMAKE_CFLAGS_RELEASE = -Os -momit-leaf-frame-pointer QMAKE_LFLAGS = -static -static-libgcc -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc - Создать файл build.bat в D:\static-qt4 со следующим содержимым:
echo off :: пути до MinGW и Perl ( ВНИМАНИЕ: установочные пути в Вашей системе могут отличаться ) set MINGW_PATH=C:\mingw\bin set PERL_PATH=C:\Perl\bin :: исключаем из переменной среды %PATH% все ненужные для сборки библиотеки пути, :: т.к. это приводило к очень загадочным и неразрешимым ошибкам set old_path=%PATH% set PATH=%MINGW_PATH%;%PERL_PATH% :: запоминаем время начала сборки set starttime=%TIME% set startcsec=%STARTTIME:~9,2% set startsecs=%STARTTIME:~6,2% set startmins=%STARTTIME:~3,2% set starthour=%STARTTIME:~0,2% set /a starttime=(%starthour%*60*60*100)+(%startmins%*60*100)+(%startsecs%*100)+(%startcsec%) echo on :: выполняем конфигурирование библиотеки :: ( ВНИМАНИЕ: пути до OpenSSL библиотеки в Вашей системе могут отличаться ) configure -opensource ^ -release ^ -nomake examples ^ -nomake demos ^ -no-qt3support ^ -no-scripttools ^ -no-opengl ^ -openssl ^ -no-webkit ^ -no-phonon ^ -no-style-motif ^ -no-style-cde ^ -no-style-cleanlooks ^ -no-style-plastique ^ -no-sql-sqlite ^ -platform win32-g++ ^ -static ^ -qt-libjpeg ^ -qt-zlib ^ -qt-libpng ^ -fast ^ -I "C:\OpenSSL-Win32\include" ^ -L "C:\OpenSSL-Win32\lib" :: запуск сборки mingw32-make :: фиксация времени окончания сборки echo off set endtime=%time% set endcsec=%endTIME:~9,2% set endsecs=%endTIME:~6,2% set endmins=%endTIME:~3,2% set endhour=%endTIME:~0,2% if %endhour% LSS %starthour% set /a %endhour%+=24 set /a endtime=(%endhour%*60*60*100)+(%endmins%*60*100)+(%endsecs%*100)+(%endcsec%) :: расчёт затраченного на сборку времени set /a timetaken= ( %endtime% - %starttime% ) set /a timetakens= %timetaken% / 100 set timetaken=%timetakens%.%timetaken:~-2% set /a timetakens_h=%timetakens%/3600 set /a timetakens_m=(%timetakens% - %timetakens_h*3600)/60 set /a timetakens_s=%timetakens%-%timetakens_h%*3600-%timetakens_m%*60 echo Static Qt4.8 was built in %timetakens_h% hour(s), %timetakens_m% minutes and %timetakens_s% seconds :: восстановление исходного значения переменной %PATH% echo off set PATH=%old_path% - Запустить файл build.bat. Время сборки библиотеки составит несколько часов( ~2 ч 15 мин на Intel Core i3 с 2 Гбайт ОЗУ / Windows 7)
- По окончании сборки все интересующие нас файлы (с расширением *.а) появятся в каталоге D:\static-qt4\lib.
Компоновка пользовательского приложения со статически собранной Qt 4.8
-
В Qt Creator идём в меню Инструменты -> Параметры -> Сборка и запуск -> Профили Qt.
-
Нажимаем кнопку Добавить, Qt Creator попросит указать путь до qmake.exe в составе собранной библиотеки. Указываем:

- Указываем и возвращаемся к окну настроек, которое должно теперь выглядеть так:

- Закрываем окно настроек и на боковой вкладке выбираем "Проекты". В появившемся окне необходимо:
- во-первых, изменить конфигурацию сборки на static-qt4;
- во-вторых, указать профиль Qt "Qt 4.8.2 (static-qt4)"

- Пересобрать пользовательский проект в конфигурации Release.