Как стать автором
Обновить

Компилируем 64-битную версию Qt под windows

Время на прочтение 3 мин
Количество просмотров 23K
logoЗа последние годы кросс-платформенная библиотека Qt получила не только многочисленные улучшения, но также собственную среду разработки QtCreator и удобные инсталляторы под все операционные системы. Теперь для разработки не нужно самому устанавливать необходимое окружение, прописывать пути, интегрировать библиотеку в ide — достаточно запустить инсталлятор и все будет работать «из коробки». К сожалению, версия для windows имеет инсталлятор только для 32-битной сборки библиотеки и ide. А иногда возникает необходимость сделать именно 64-битное приложение — чаще всего это связано с необходимостью использовать чужие 64-битные компоненты: подгружаемые библиотеки, inproc com компоненты и прочие странные штуки. Под катом содержится подробная инструкция как скомпилировать Qt и QtCreator из исходников для 64-битной архитектуры.


Предупреждение


Сборка займет порядка 6 часов времени и 8 гигабайт места на жестком диске :).

Устанавливаем компилятор


Для корректной работы отладчика в QtCreator собирать рекомендуется компилятором от Microsoft.
Скачиваем SDK тут, запускаем инсталлятор и устанавливаем всю ветку «developer tools» (при сборке Qt используется почти все оттуда).

Собираем исходники в кучку


Скачиваем исходники последнего QtCreator 1.3 тут и распаковываем архив в
c:\qt\
Переименовываем распаковавшуюся папку в
2010.01.x64
Затем скачиваем исходники последней Qt 4.6 тут и распаковываем архив в
c:\qt\2010.01.x64
Переименовываем распаковавшуюся папку в
qt
Здесь нужно учитывать, что при компиляции имена папок будут вкомпилированы в qmake и поменять их будет нельзя. Приведенные мной имена папок соответствует тому, куда Qt устанавливает инсталлятор под windows.

Сборка


Запускаем
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\Visual Studio 2008 x64 Win64 Command Prompt.lnk

В открывшейся консоли последовательно выполняем:

cd c:\qt\2010.01.x64\qt
configure.exe
o
y
nmake


Вызов configure.exe создает makefile для сборки всего компилятором от microsoft (компилятор
определится автоматически, так как мы работаем в visual studio command prompt — переменные окружения с нами). «o» выберет тип лицензии open source (бесплатно), «y» подтвердит соглашение с лицензией. Вызов nmake — это собственно утилита от microsoft для чтения makefile и компиляции чего надо и чего не надо. После того как nmake отработала (а это несколько часов) не закрываем консоль и копируем куда-нибудь во временную папку все .pdb файлы из
c:\qt\2010.01.x64\qt\lib
Из-за баги в makefile они будут стерты при удалении временных файлов. Затем продолжаем в консоли:

nmake clean
set PATH=%PATH%;c:\qt\2010.01.x64\qt\bin
cd c:\qt\2010.01.x64
qmake "CONFIG+=release" -r
nmake release


Не закрывая консоль, копируем во временную папку все .pluginspec файлы из
c:\qt\2010.01.x64\lib\qtcreator\plugins\nokia
Это тоже баг в makefile. Затем продолжаем в консоли:

nmake clean


После того как все скомпилировалось, перемещаем .pdb и .pluginspec файлы обратно. QtCreator компилируется в релизном варианте, так как отладочный билд будет запускаться как command-line приложение с неубираемой консолью.

Обтачивание напильником


После того как все успешно собрано, все .dll файлы в окончании имени которых нет «d» копируются из папки
c:\qt\2010.01.x64\qt\bin
в папку
c:\qt\2010.01.x64\bin
Среда разработки QtCreator запускается как
c:\qt\2010.01.x64\bin\qtcreator.exe
Перед его вызовом необходимо вызвать
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat

Это нужно для того, чтобы QtCreator корректно работал с компилятором и отладчиком от Microsoft.

Запускаем QtCreator, выбираем Tools->Options->Project, снимаем галочку с «Use jom». Можно в принципе и не снимать, но тогда этот самый jom нужно будет скачать и скопировать в «bin». Нажимаем «Apply».
Затем выбираем Tools->Options->Qt4->QtVersions, нажимаем на "+" в правом верхнем углу, в поле «Version Name» прописываем «Qt 4.6.0 x64», в поле «QMake location» прописываем
«C:\qt\2010.01.x64\qt\bin\qmake.exe», устанавливаем «MSVC Version» в «9.0», в поле «Default Qt Version» выбираем «Qt 4.6.0 x64» и нажимаем на кнопку «Rebuild». Выбираем Tools->Options->Help->Documentation, нажимаем «Add» и добавляем все .qch файлы из c:\qt\2010.01.x64\qt\doc\qch

Вообщем-то все. Создание, редактирование, сборка и, что самое приятное — отладка 64 битных Qt программ под windows к вашим услугам. За сим прощаюсь и жду комментариев. Если есть вопросы — постараюсь ответить. Если есть что рассказать (может зря я все это делал и на просторах сети уже лежат готовые инсталляторы :) — буду благодарен.

Updated 27.06.2010


Для сборки с недавно вышедшем Visual Studio 2010 SDK необходимо запускать configure.exe с ключем
-platform win32-msvc2008
При этом желательно использовать последнюю версию Qt из GIT и бранч 2.0 Qt Creator оттуда же
git clone -b 2.0 git://gitorious.org/qt-creator/qt-creator.git c:\qt\qt-creator.latest

Перед запуском необходимо установить perl и заменить в qt/mkspecs/win32-msvc2010/qmake.conf фрагмент «QMAKE_CFLAGS_RELEASE = -O2 -MD» на «QMAKE_CFLAGS_RELEASE = -Od -MD».

Profit?


QtCreator

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
+9
Комментарии 7
Комментарии Комментарии 7

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн