Сборка Qt из исходников?
Прошу не выкидывать меня на Google, я там уже был. Ни разу до этого я не собирал Qt.
Два дня тому назад я понял что мне надо пилить мои приложения на Qt статически. Я долго терпел эти dll-библиотеки… но мое терпение лопнуло. Вернее не терпение, у меня стоит задача собрать автономное приложение.
Я немного знаю и много прочитал. В итоге получился такой вот алгоритм:
- Скачать Qt for Open Source C++ development on Windows. link
- Скачать MinGW. link
- Распаковать исходники и MinGW в папку ‘C:/Qt’
- Впихнуть MinGW в ‘Qt:/Qt/[sources]/mingw’
- Запустить ‘configure.exe’ с ключами -static -debug-and-release -no-qt3support -no-exceptions
- Запустить ‘mingw32-make.exe’ с командой sub-src
- Прикрутить Qt Creator
Меня волнует Qt Command Prompt. Я не могу найти его нигде в исходниках. Выходит мне надо самому задавать все переменные окружения? Или есть другие пути? Можете написать конкретно этап 4-6 (из моего списка) как для дебила :).
И как прикрутить Qt Creator? Достаточно просто скачать бинарник и установить куда-то в share? Или надо что-то мутить дополнительно
P.S. Знаю вопрос нубовской, но прошу не минусовать. А при возможности даже плюсовать 🙂
Жду ответов, спасибо.
- Вопрос задан более трёх лет назад
- 12048 просмотров
Сборка Qt из исходников?
Прошу не выкидывать меня на Google, я там уже был. Ни разу до этого я не собирал Qt.
Два дня тому назад я понял что мне надо пилить мои приложения на Qt статически. Я долго терпел эти dll-библиотеки… но мое терпение лопнуло. Вернее не терпение, у меня стоит задача собрать автономное приложение.
Я немного знаю и много прочитал. В итоге получился такой вот алгоритм:
- Скачать Qt for Open Source C++ development on Windows. link
- Скачать MinGW. link
- Распаковать исходники и MinGW в папку ‘C:/Qt’
- Впихнуть MinGW в ‘Qt:/Qt/[sources]/mingw’
- Запустить ‘configure.exe’ с ключами -static -debug-and-release -no-qt3support -no-exceptions
- Запустить ‘mingw32-make.exe’ с командой sub-src
- Прикрутить 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.