четверг, 22 ноября 2012 г.

Сборка QT 4.8.4 под VS2012

Очередная ссылка на просторах инета посвященная этому увлекательному процессу.
Больше для себя, но может будет кому-то полезна.

На данный момент текущая версия QT 4.8.4. 
Последовательность сборки (все указанные ссылки могут меняться со временем):
  1. Забираем исходники, можно забрать со странички загрузок qt-project, но лучше потратить немного времени, если не установлен git и установить TortoizeGit и необходимый для него msysGit. Далее клонировать хранилище с текущей версией QT: git://gitorious.org/qt/qt.git.
  2. Устанавливаем переменные среды следующим образом:
  3. QTDIR=<Каталог куда мы клонировали хранилище QT(например: C:\QT\4.8.4)>
  4. QMAKESPEC=win32-vs2012
  5. Добавляем в PATH %QTDIR%\bin (кстати, для этого есть отличная утилита, которая заодно позволит привести PATH в порядок Path Editor)
  6. Теперь перед сборкой необходимо внести некоторые изменения, без которых сборка завершится с ошибкой (обсуждение ошибки на оффоруме). Для меня подошел последний приведенный вариант патча. Находим файл: C:\work\lib\src\qt-4.8.4vs11-32\src\3rdparty\webkit\Source\JavaScriptCore\wtf\HashSet.h и заменяем его содержимое. UPD: ни один из приведенных по ссылке патчей не является рабочим. Но тем не менее сборка завершается корректно, и полученные библиотеки можно использовать без WebKita. UPD2: патч отсюда тоже не работает для меня.
    ВНИМАНИЕ!!! Файл не должен быть изменен с момента создания этого поста, или необходимо учесть внесенные изменения.
  7. Далее запускаем командную строку VS2012, я делаю это запуская студию и далее Сервис / Командная строка Visual Studio.
    Либо можно выполнить команду: cmd.exe /K vcvars32.bat в каталоге <каталог куда установлена VS2012>\VC\bin (у меня это C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin)
  8. Переходим в каталог QT: cd %QTDIR%
  9. Запускаем: configure -debug-and-release -mp -no-qt3support -nomake examples -nomake demos (в данном варианте собираются сборки для отладки и релиза, флаг -mp позволяет компилятору VS запустить сборку в несколько потоков, полный список опций можно посмотреть запустив configure -help, также описание опций можно найти здесь)
    Дополнительно, для того чтобы не устраивать бардак желательно указать каталог в который будет установлена сборка: например -prefix C:\QT\bin\4.8.4
    В случае добавления префикса необходимо создать целевой каталог и скопировать в него каталог mkspecs из исходного каталога.
  10. После запуска выбираем 'o' - opensource вариант и 'y' - соглашаемся с лицензией.
  11. Через некоторое время, по ощущениям примерно 30 минут configure закончит свою работу и можно будет запустить nmake, и прождав около пяти часов мы получаем готовую сборку.
  12. Если был указан префикс, то после окончания сборки необходимо запустить команду nmake install, после чего скорректировать переменную %QTDIR% таким образом, чтобы она содержала путь указанный в префиксе. Исходный каталог для экономии места можно будет удалить. 
На этом все.

Комментариев нет: