Что же касается самих сборок, с ними не всё так гладко, как хотелось бы. В идеале я должен, например, с помощью configure указать, куда положить новую сборку (mingw48_32), а при выполнении mingw-make все собранные файлы должны оказаться там, куда я указал, а не вперемешку с сырцами. Увы, пока мечты. Мечтой пока что остаётся получить копию установленной заранее папки mingw48_32 (с Assistant`ом, Designer`ом и тд). После сборки из сырцов с параметрами по умолчанию таких файлов нет.
Итак, собираем Qt 5.1 (5.1.1)
1. Прежде всего устанавливаем Perl и Python (в папки по умолчанию), проверяем, что Perl прописался в Path, туда же прописываем путь к Python (C:\Python27).
2. Устанавливаем Qt :). Я выбрал Online инсталляцию. Не забываем Mingw 4.8
3. (не обязательно) Если вы не сторонник мусора в Src, установите Git в виде Git Extensions, создайте репозиторий в папке D:\Qt\5.1.1\Src. Так гораздо удобнее чистить папку Src от мусора, который появляется в процессе конфигурации/сборки + отпадает необходимость выполнять confclean. Можно пропустить этот шаг.
4. Копируем папку mingw48_32. Здесь будет лежать новая сборка со всеми файлами, которые есть в оригинальной сборке, но не собираются из сырцов. Если считаете этот шаг ненужным, просто создайте новую папку, куда вы скопируете содержимое qtbase после окончания сборки.
5. Редактируем D:\Qt\5.1.1\Src\qtbase\mkspecs\win32-g++\qmake.conf, находим QMAKE_LFLAGS, заменяем на QMAKE_LFLAGS = -static -static-libgcc
6. Создаём батник (в силу ленивости) в D:\Qt\5.1.1\Src\qtbase (static_gpp.bat) следующего содержания:
SET "QTDIR=%~dp0"
SET "QTDIR=%QTDIR:~0,-1%"
SET QMAKESPEC=win32-g++
SET "PATH=D:\Qt\Tools\mingw48_32\bin;%QTDIR%\bin;%PATH%"
pause
configure.exe -debug-and-release -opensource -static -opengl desktop -no-vcproj -nomake examples || @goto :ends
pause
mingw32-make
:ends
@cmd /q /a /k ""
Паузы и прочие излишества разумеется можно добавить по своему усмотрению. Также хотелось бы обратить внимание на обязательное наличие -nomake examples, иначе сборка займёт неприлично долгое время и съест примерно 50 ГБ свободного пространства. Оно вам надо?
Можно положить его в репозиторий, чтоб потом 2 раза не бегать :)
7. Запускаем батник, ждём, пока всё соберётся.
8. Копируем содержимое D:\Qt\5.1.1\Src\qtbase в папку, созданную в пункте 4. Можно копировать не всё. Файлы, лежащие в корне этой папки, а также папки .obj, config.tests, dist, qmake, src, tests, util нам не нужны
Теперь необходимо прописать новую конфигурацию в Qt Creator. Запускаем его.
9. Tools/Options/Build&Run/Qt Versions. Добавляем новую версию, указываем путь к qmake, который лежит в нашей новой папке слэш bin.
10. Tools/Options/Build&Run/Kits. Добавляем новый, указываем версию Qt, созданную ранее.
Всё готово. Теперь создаём GUI проект, выбираем новую конфигурацию, компилируем. Если размер полученного приложения внушителен (больше 1 МБ), значит, всё получилось. Но на всякий случай проверяем, запустив его.
7 комментариев:
Спасибо тебе громадное!!! Я уж думал все qt библиотеки перебирать.
Громаднейшее СПАСИБО тебе, после недели мучений именно твоя статья помогла все наладить и не вдаваться в шаманские мучения.))))))
Сделал все как ты говорил, не хочет компилировать - говорит не знаю, что такое QApplication... Что делать?
Это исчезло, выставил правильный компилятор. Теперь не может найти qwt, что ж такое.
Честно говоря, я тут ничем не могу помочь. Я экспериментировал несколько дней (особенно порадовала бесконечная пересборка всех примеров на Intel E7200).
Я просто просуммировал тот опыт, чтоб не забыть в нужный момент, потому как Qt использую крайне редко. В своё время несколько раз долбался с одними и теми же вещами в Qt 4.4 - 4.6, надоели эти грабли :)
какой ставить Python? 3.4.1 или 2.7.8
какой ставить Perl? ActivePerl StrawberryPerl или DWIMPerl
Python 2.7 и ActivePerl работают.
Отправить комментарий