Статическая компиляция qt linux

Qt SDK 4.8 статическая сборка проекта


В данном уроке я расскажу в картинках как собрать приложение статически/провести статическую линковку/ отучить ваш *.exe от библиотек Qt — кажется это всё одно и тоже по своей сути

Лично я всё проделывал со свеженькой на данный момент Qt SDK с сайта Nokia( Qt 4.8 и SDK 1.2.1)
Сам я полный нуб в Windows, так как всё жизнь сижу на Linux, так что всё сопровождается картинками, для таких же нубов в винде, как я сам.

Насколько я сам разобрался для нормальной сборки нам в системе понадобится Perl

Я его брал отсюда

Затем, насколько я понял, в винде творится жуткий беспорядок с тем, где хранятся либы и нужно вписывать вручную какие-то переменные, короче галочка на скрине должна от всего этого маразма избавить, так что советую её оставить


Ура, у нас есть Perl!

Теперь можно приступать к сборке Qt из исходников.

Первым делом я предлагаю скачать исходники
я взял эти , возможно и посвежей подойдут, но я рисковать не стал
теперь нужно распаковать это дело в X:\QtSDK\QtSources\4.7.4\
папок QtSources\4.7.4\ у вас не будет, их нужно создать

теперь нам нужно открыть вашим любимым блокнотом файлик
X:\QtSDK\QtSources\4.7.4\mkspecs\win32-g++\qmake.conf

найти строку, содержащую текст: QMAKE_LFLAGS
и привести её к такому вот виду:
QMAKE_LFLAGS = -static -static-libgcc -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
и сохранить файл.

Теперь нам нужно открыть пропатченный терминал(да простят меня виндузятники, если эта штука не так называется), который можно найти у себя, взглянув на мой скриншот

Теперь в этом терминале нам нужно перейти в каталог
X:\QtSDK\QtSources\4.7.4\

и забить команду
configure -static -debug-and-release -no-exceptions -openssl-linked -nomake demos -nomake examples

затем вам предстоит прочесть всё, что вам предложат прочесть и правильно ответить на вопросы

дождавшись выполнения команды(конца конфигурирования) и появления приглашения строки ввода, забиваем теперь команду(собираем библиотеку)
mingw32-make sub-src

после окончания терминал можно закрыть и проделать следующее

после того, как нажмёте «Собрать всё» может вывалится вот такая вот с первого взгляда непонятная штука, её я предлагаю просто закрыть и забыть о ней

Всё почти готово, осталось открыть свой проект и сделать несколько кликов, как на скринах

Всем спасибо за внимание, надеюсь у вас всё получилось.

Надеюсь данный урок послужит макетом для более тонкой сборки и настройки вашего окружения Qt.

Источник

Русские Блоги

Статическая компиляция Qt

По умолчанию при компиляции программы с помощью QtCreator используется динамическая компиляция. Скомпилированная программа должна добавить соответствующие файлы библиотеки Qt и множество файлов dll во время выполнения. Если вы хотите упаковать созданную программу вместе с необходимыми библиотеками в исполняемую программу, вам необходимо использовать статическую компиляцию.

Читайте также:  Android vpn connection to windows server

Процесс производства статической компиляции в win7 x64 выглядит следующим образом:

Во-первых, установите Qt

Версия Qt, выбранная в этой статье, — qt-opensource-windows-x86-mingw530-5.8.0.exe, ссылка для скачивания: http://download.qt.io/official_releases/qt. Обратите внимание, что вам необходимо проверить исходный код установки при установке, как показано ниже:

Во-вторых, установите Perl

Примечание. Переменные среды добавляются автоматически в процессе установки. Если нет, добавьте их вручную.

В-третьих, установите Python

Примечание. После установки Python добавьте каталог установки в переменную среды PATH (она будет добавлена ​​автоматически, если во время установки вы выберете «Добавить Python 3.5 в PATH»)

В-четвертых, скачайте OpenSSL

OpenSSL необходим для связи по протоколу http, а исходный код Qt не включает библиотеку OpenSSL, поэтому вам необходимо загрузить библиотеку OpenSSL. Я не рекомендую компилировать OpenSSL самостоятельно, это более проблематично. Эта статья загружает скомпилированную библиотеку ssl напрямую. : //pan.baidu.com/s/1dksCTC Пароль: ibp0

Я распаковал сжатый пакет в C: \ Dev

Пять, проверьте

Найдите программу командной строки, соответствующую Qt, и откройте

Введите следующую команду, чтобы убедиться, что компилятор gcc настроен правильно,

Затем введите следующую команду, чтобы увидеть, правильно ли настроен интерпретатор perl.

Введите следующую команду, чтобы увидеть, правильно ли настроен python

Нажмите Ctrl + Z, чтобы войти, вы можете выйти из Python

Шесть, скомпилируйте Qt

1. Настроить Qt (1 минута)

Перейдите в исходный каталог Qt

Примечание. При настройке здесь qtwebengine, qtwebview, qt3d и wayland пропускаются. Если вам нужны эти модули, вы можете удалить skip

Примечание: команда настройки здесь очень важна. Если команда неверна, скомпилированная функция Qt может быть неполной. Если после компиляции возникла проблема, вам необходимо выполнить компиляцию на основе некомпилированного исходного кода, и есть проблема с скомпилированным исходным кодом. (Я не использовал повторно некомпилированный исходный код при его компиляции, и это заняло много времени), поэтому я скопировал исходный код (то есть каталог Src) перед настройкой, и я могу сделать копию и перекомпилировать, если что-то пойдет не так.

2. Компилировать (около 4 часов)

Примечание: этот раздел скомпилирован для 2 потоков, если компьютер в порядке, вы можете открыть больше потоков, а скорость компиляции выше.

3. Установка (около 20 минут, быстрее, если жесткий диск исправен)
4. Последующие действия

После компиляции / установки мы можем удалить каталог с исходным кодом, что может освободить около 8 ГБ пространства, что значительно.

Семерка, конфигурация

1. Добавьте версию Qt

Откройте Qt Creator -> Инструменты -> Параметры -> Компонент и запуск -> Версии Qt, добавьте версию Qt в соответствии с рисунком ниже, а затем нажмите Применить.

2. Настройте комплект.

Добавьте в соответствии с приведенным ниже рисунком.Обратите внимание, что версия Qt должна помнить о том, чтобы выбрать правильную версию, а затем нажать кнопку Применить.

3. Настройте компилятор.

Откройте C: \ Qt \ 5.6.0_MinGW_static \ mkspecs \ win32-g ++ \ qmake.conf с помощью Блокнота
Найдите QMAKE_LFLAGS и QMAKE_LFLAGS_DLL и измените их на -static

На данный момент все статические версии Qt скомпилированы. Вы можете оставить сообщение и обсудить. Я загружу скомпилированную версию на Baidu Netdisk, ссылка: https://pan.baidu.com/s/1pMNhKQv Пароль: x2cy для справки.

Читайте также:  Танчики для денди для windows

Интеллектуальная рекомендация

Пошаговая загрузка файла Spring MVC-09 (на основе файла загрузки клиента Servlet3.0 + Html5)

пример тестовое задание Исходный код Несмотря на загрузку файлов в Servlet3.0 +, мы можем очень легко программировать на стороне сервера, но пользовательский интерфейс не очень дружелюбен. Одна HTML-ф.

Создайте многоканальное окно в приложениях Win32

Создайте многоканальное окно в приложениях Win32, создайте несколько оконных объектов одного и того же класса Windows, а окна объектов разных классов окон. .

Путь к рефакторингу IOS-APP (3) Введение в модульное тестирование

IOS-APP реконструкция дороги (1) структура сетевых запросов IOS-APP реконструкция дороги (два) Модельный дизайн При рефакторинге нам нужна форма, позволяющая вносить смелые изменения, обеспечивая при .

Tree——No.617 Merge Two Binary Trees

Problem: Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not. You need to merge them into a new bin.

Источник

Кросс-компиляция Qt5 под Linux для Win x32/x64/static/shared

Документирование получения системы кросс-компиляции под Linux для Windows x32/x64/static/shared и сборка последней на момент описания Qt 5.4.1 в лайт-версии (для указанных четырех целей). Для себя, глубоко-обожаемого, ну и для пользы обществу.

Многие разработчики приходят к выводу, что использование *nix (в частности Linux) более предпочтительно для разработки приложений, используя фрэймворк Qt. И тому есть причины. Qt изначально ориентирована на *nix инструментарий, типа autotool, make, perl… И второй момент, под никсами есть прекрасный инструмент — valgrind, под виндой порта пока его не видел. Ну и последняя причина: просто удобно иметь набор инструментария для создания приложений под различные целевые платформы — в одном месте.

0. Сценарий сборки

Все шаги делаем последовательно. Желательно не объединять все скрипты в последовательную сборку по причине необходимости промежуточного «человечного» контроля. Разные дистрибутивы Линуха, разные среды исполнения, наборы инструментариев… Простой алгоритм: сделал очередной шаг, убедился в отсутствии ошибок, пошел делать следующий. Итак, сам сценарий:

  • 1. Предварительная подготовка
  • 2. Установка среды кросс-компиляции MXE
  • 3. Загрузка и настройка Qt 5.4.1
  • 4. Сборка комплектов Qt 5.4.1 для четырех целей (см. сабж)
  • 5. Прописка собранного в QtCreator

1. Предварительная подготовка

У вас установлен дистрибутив Линукса. Желательно все это делать на на продакшен-компе (не на живом Линуксе), а установленном в виртуальную машину. Я например, пользуюсь VMWare, но это дело вкуса. Выбор дистрибутива Линукса — так же дело вкуса. Лично я предпочитаю Gentoo Linux, собственно под ним всю эту кухню и настраиваю. Если есть сложности в настройке, у меня есть небольшая статейка по этому вопросу: «Установка и настройка Linux Gentoo под VMWare».

Итак, у вас есть настроенный Линукс и вы работаете не под рутом! Для дальнейшей работы вам нужно проверить присутствие следующих установленных пакетов, или доустановить:

Вся дальнейшая установка будет производиться в каталог $HOME/dev. Если у вас таковой присутствует — либо переименовываете его, либо внимательно правите скрипты, которые будут приведены далее. Для всех манипуляций со скачиваемыми внешними файлами/скриптами/библиотеками будет использован каталог $HOME/setup. Все замечания выше относительно $HOME/dev — в силе и к этому каталогу.

Читайте также:  Темы для steam windows

2. Установка среды кросс-компиляции MXE

Предварительное замечание об MXE. Это отличнейшая система сборки тулчейнов для кросс-компиляции. Но есть одно «но». В данный момент не существует стабильной ветки. Авторы до поры до времени вели две ветки в своем git-репозитарии — стабильную и «разработческую». Сейчас ветки объединены. Разработка идет ну очень активно — изменения сбрасываются чуть ли не раз 1-3 дня. А это чревато тем, что «то работает сборка, то не работает». Некоторые важные для меня библиотеки, в частности клиентская часть PostgreSQL, собираются без ошибок, но в нерабочем состоянии. Потратил неделю не исследование явных косяков. Исправляем эти «недочеты». Итак:

Должны получить в каталоге $HOME/setup следующий набор скриптов:

Источник

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

Система: Debian 8. Итак, мне необходимо собрать Qt Creator статически. Что делаю:

Устанавливаю необходимые зависимости

Скачиваю и распаковываю исходники

Распаковал в /home/user_name/. Перехожу туда с помощью cd

Конфигурирую с опцией статической сборки

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

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

1 ответ 1

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Оцените статью