Как собрать qt из исходников
Перейти к содержимому

Как собрать qt из исходников

  • автор:

Сборка Qt из исходников?

Прошу не выкидывать меня на Google, я там уже был. Ни разу до этого я не собирал Qt.

Два дня тому назад я понял что мне надо пилить мои приложения на Qt статически. Я долго терпел эти dll-библиотеки… но мое терпение лопнуло. Вернее не терпение, у меня стоит задача собрать автономное приложение.

Я немного знаю и много прочитал. В итоге получился такой вот алгоритм:

  1. Скачать Qt for Open Source C++ development on Windows. link
  2. Скачать MinGW. link
  3. Распаковать исходники и MinGW в папку ‘C:/Qt’
  4. Впихнуть MinGW в ‘Qt:/Qt/[sources]/mingw’
  5. Запустить ‘configure.exe’ с ключами -static -debug-and-release -no-qt3support -no-exceptions
  6. Запустить ‘mingw32-make.exe’ с командой sub-src
  7. Прикрутить Qt Creator

Меня волнует Qt Command Prompt. Я не могу найти его нигде в исходниках. Выходит мне надо самому задавать все переменные окружения? Или есть другие пути? Можете написать конкретно этап 4-6 (из моего списка) как для дебила :).

И как прикрутить Qt Creator? Достаточно просто скачать бинарник и установить куда-то в share? Или надо что-то мутить дополнительно

P.S. Знаю вопрос нубовской, но прошу не минусовать. А при возможности даже плюсовать 🙂

Жду ответов, спасибо.

  • Вопрос задан более трёх лет назад
  • 12048 просмотров

Сборка Qt из исходников?

Прошу не выкидывать меня на Google, я там уже был. Ни разу до этого я не собирал Qt.

Два дня тому назад я понял что мне надо пилить мои приложения на Qt статически. Я долго терпел эти dll-библиотеки… но мое терпение лопнуло. Вернее не терпение, у меня стоит задача собрать автономное приложение.

Я немного знаю и много прочитал. В итоге получился такой вот алгоритм:

  1. Скачать Qt for Open Source C++ development on Windows. link
  2. Скачать MinGW. link
  3. Распаковать исходники и MinGW в папку ‘C:/Qt’
  4. Впихнуть MinGW в ‘Qt:/Qt/[sources]/mingw’
  5. Запустить ‘configure.exe’ с ключами -static -debug-and-release -no-qt3support -no-exceptions
  6. Запустить ‘mingw32-make.exe’ с командой sub-src
  7. Прикрутить Qt Creator

Меня волнует Qt Command Prompt. Я не могу найти его нигде в исходниках. Выходит мне надо самому задавать все переменные окружения? Или есть другие пути? Можете написать конкретно этап 4-6 (из моего списка) как для дебила :).

И как прикрутить Qt Creator? Достаточно просто скачать бинарник и установить куда-то в share? Или надо что-то мутить дополнительно

P.S. Знаю вопрос нубовской, но прошу не минусовать. А при возможности даже плюсовать 🙂

Жду ответов, спасибо.

  • Вопрос задан более трёх лет назад
  • 12048 просмотров

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

За последние годы кросс-платформенная библиотека 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. Затем продолжаем в консоли:

После того как все скомпилировалось, перемещаем .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».

Статическая компиляция Qt из исходного кода

Если я всё верно понял, то в систему должен установится Qt Creator статически, т.е. свои проекты я могу собирать единым файлом. Однако, в списках всех программ (dpgk) qt отсутствует. Как его запустить? Или я просто делаю неверно что-то или чего-то не понимаю? Скомпилированные файлы находятся здесь:

/usr/local/Trolltech/Qt-4.8.7/ 

Подскажите, как грамотно собрать QT из исходников(обязательно статически, чтобы я мог наконец все используемые библиотеки вшить в исполняемый файл) и самое главное — запустить?

Отслеживать
77.2k 6 6 золотых знаков 58 58 серебряных знаков 126 126 бронзовых знаков
задан 13 июл 2018 в 3:23
2,723 1 1 золотой знак 21 21 серебряный знак 37 37 бронзовых знаков

Вам не нужен статически собранный Qt Creator, Вам надо Qt статически собирать. По статической сборке Qt 4.8 море ссылок в поиске.

13 июл 2018 в 5:52

@ixSci судя по ссылке на репозиторий, откуда я выгружаю исходный код, я собираю qt таки. Но, повторюсь, он собрался, что делать дальше? Я читал, но обычно все заканчивается на сборке qt и все. Как это цеплять к creator не расписано.

13 июл 2018 в 6:10

QtCreator это просто IDE. Если у Вас статически собранные библиотеки, то при сборке проекта они будут скомпанованы с единый бинарный файл, вне зависимости от того, используете Вы QtCreator или нет. Почитайте что такое статические библиотеки в C/C++.

13 июл 2018 в 6:19

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Итак, отвечаю на собственный вопрос, ибо так никто и не помог и пришлось разбираться. Для статической компиляции QT нужно следующее: Установить Qt Creator. Посмотреть в about версию используемого Qt. Иногда, для сборки нужны дополнительные зависимости. Устанавливаем, если надо:

sudo apt-get install build-essential ^libxcb.* libx11-xcb-dev libglu1-mesa-dev libxrender-dev libfontconfig1-dev 

Далее пройти сюда, выбрать нужную версию и в папке single скачать архив с исходниками:

qt-everywhere-src-"ВЕРСИЯ".tar.xz 

Следующим пунктом будет скачивание исходников, любыми способами, и распаковкой в конкретную папку(к примеру):

/home/USER-NAME/qt_source/ 

После того, как распаковка закончится, создаем папку выходного каталога скомпилированного Qt:

mkdir -p /usr/lib/Qt5_st 

Переходим в каталог распаковки:

cd /home/USER-NAME/qt_source/ 

Далее запускаем конфигуратор сборки:

./configure -platform linux-g++ -release -static -fontconfig -opensource -confirm-license -nomake examples -nomake tests -qt-zlib -qt-libpng -qt-libjpeg -prefix /usr/lib/Qt5_st 

, где -static — это то, ради чего всё затевалось. Статическая сборка проектов. Остальное можно посмотреть в документации.

И затем выполняем команды сборки и последующей установки Qt в систему:

sudo make sudo make install 

Ждем некоторое количество времени, всё зависит от конфигурации ПК, где происходит компиляция.

После компиляции в созданной папке /usr/lib/Qt5_st/bin будет лежать файл qmake, к которому надо указать путь в самой QT (Инструменты-Параметры-Профили QT-Добавить — и выбрать файл qmake из папки /usr/lib/Qt5_st/bin)

Далее надо нажать применить — перейти на вкладку комплекты — нажать добавить, внизу в списке выбрать профиль QT и выбрать созданный на предыдущем шаге профиль. Осталось только нажать применить и ОК. Можно закрыть настройки, и добавить профиль к текущему проекту. Для этого надо нажать CTRL + 5 и добавитьк проекту новый вариант сборки.

И на этом всё, при компиляции проекта на выходе будет единый бинарный файл, включающий в себя все используемые библиотеки Qt.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *