Меню Рубрики

Windows build qt static

Статическая линковка Qt 5.x.x с MinGW32 в Windows (сборка в один exe’шник)

Доброго времени суток, хабравчане!

Я уверен, что все заметили, когда делали деплой своей программы через windeployqt.exe, программа зависит от разных динамических и qt’шных библиотек. Вследствие чего, развертка на других компьютерах становится неудобной. Почему? Приходится держать сам exe’шник в папке с нужными библиотеками. Разумеется, можно умудриться и без статической линковки решить эту проблему. Согласитесь, неудобно, да и каждый раз нужно лишние телодвижения делать. Проще один раз запариться и потом не делать лишних движений. Еще один плюс статической линковки — размер файла. При динамической линковке сам exe’шник весит примерно от 1 МБ до 7-8 МБ, а с окружением до 70 МБ может спокойно дойти, даже если проект небольшой. При статической линковке есть только exe’шник, который весит примерно в 2 раза меньше, чем окружение при динамической линковке.

Для сборки необходимы:

  • Qt 5.x.x с включенными компонентами (если Qt уже был установлен, нужные компоненты можно установить с помощью Qt Maintenance Tool):
  • Qt — Qt 5.x — MinGW x.x.x 32 bit
  • Qt — Qt 5.x — Sources
  • Qt — Tools — MinGW
  • Perl (Strawberry Perl, к примеру). Я использую strawberry-perl-5.30.2.1-32bit.
    Проверить, что путь к исполняемому файлу Perl прописан в переменной окружения PATH. Этот пункт можно пропустить, но лучше проверить.
  • Python 3.8

Путь установки Qt неважен, у меня он установлен на диске D. Убедитесь, что объем доступной памяти вам хватит. Нужно как минимум 30 ГБ свободного места.

  1. Переходите в директорию, где папка Src (D:\Qt\5.x.x\Src);
  2. Там создайте папку static (D:\Qt\5.х.х\static);
  3. Папку Src копируйте в папку static. Получится D:\Qt\5.x.x\static\Src. Дальнейшие действия будут там, в Папке Src;
  4. Создайте папку mingwXX_32 (у меня, например, mingw73_32). Получится D:\Qt\5.x.x\static\mingwXX_32;
  5. Редактируйте файл qmake.conf, который находится в D:\Qt\5.х.х\static\Src\qtbase\mkspecs\win32-g++.

В самый конец файла, после строки load(qt_config) допишите с новой строки эти команды:

  • Сохраниите файл qmake.conf;
  • Откройте (ВНИМАНИЕ! НЕ CMD! НЕ CMD! НЕ CMD!) командную строку MinGW. В поисковике компьютера (на панели задач) пишите mingw.
    Командная строка MinGW будет выдана как Qt 5.x.x (MinGW x.x.x 32-bit)
  • Введите в командную строку MinGW поочередно следующие команды:
    set LANG=en

    cd /d %QT_INSTALL_PREFIX%\..\Src (именно такая строка без изменений)

    Тут стоит обратить внимание на опцию -no-ssl — это значит что Qt будет собран без поддержки SSL.

    Если никаких ошибок нету, можно продолжать:

  • Введите mingw32-make -k -j4
    Нереально длительный процесс, можете смело забыть про него на 4 часа ориентировачно, от скорости чтения/записи диска не зависит, а зависит от процессора. Там где -j4 вместо 4 поставьте число ядер вашего процессора.
  • Введите mingw32-make -k install
    В результате получаем статическое окружение в D:\Qt\5.x.x\statiс\mingwXX_32;
  • Настройка Qt Creator:
    • В верхнем меню Инструменты -> Параметры -> Профили Qt
    • Добавить -> D:\Qt\5.х.х\static\mingw73_32\bin\qmake.exe -> Применить
    • Комплекты -> Добавить
    • Название: Qt static x32 (или какое угодно)
    • Тип Устройства: Desktop
    • Устройство: Локальный ПК
    • Корень образа: D:\Qt\5.х.х\static
    • Компилятор:
      a) для С: MinGW x.x.x 32-bit for C
      b) для С++: MinGW x.x.x 32-bit for C++
    • Профиль Qt: Qt static x32 (название профиля, которое вы указали при добавлении профиля)
    • Применить -> Ок

  • Остается только пересобрать свой проект с новым комплектом.
  • Дополнительная информация. У меня:

    • Qt 5.14.1
    • MinGW 7.3.0 32-bit (mingw73_32)
    • Python 3.8 x32
    • strawberry-perl-5.30.2.1-32bi
    • Windows 10 Pro x64

    Полет нормальный.

    Брал информацию отсюда:

    Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

    Источник

    Статическая линковка библиотек Qt 5.x (MinGW) под Windows

    В данной статье я опишу как сделать отдельный комплект со статической линковкой библиотек Qt5. Если другими словами, мы сможем собирать проект в один исполняемый файл без Qt *.dll.

    Подготовка

    Начнем

    Сборка комплекта

    • Создаем резервную копию qmake.conf, он находится в «Qt5.5.0\5.5\mingw492_32\mkspecs\win32-g++»
    • Делаем изменения в qmake.conf
    • Создаем резервную копию исходников Qt, они находятся в «Qt5.5.0\5.5\Src»
    • Теперь запускаем терминал Qt — Qt 5.5 for Desktop (MinGW 4.9.2 32 bit), он находится
      в «Все программы -> Qt5.5.0 -> 5.5 -> MinGW 4.9.2 (32-bit)» или же полным путем «%appdata%\Microsoft\Windows\Start Menu\Programs\Qt 5.5.0\5.5\MinGW 4.9.2 (32-bit)«
    • Переходим в директорию с исходниками Qt, вводим команду
    • Конфигурируем этап установки, вводя команду, где путь после -prefix, местоположение комплекта сборки
    • По завершению конфигурирования, начинаем компиляцию исходников Qt, командой

    После компиляции, будет несколько ошибок, не обращаем на них внимание, они никак не скажутся на нашей сборке.
    Копируем файлы в указанный нами каталог на этапе конфигурирования, командой

    После копирования, так же будет несколько ошибок, не обращаем на них внимание.

  • Теперь восстанавливаем резервные копии исходников Qt и qmake.conf
  • Добавляем статичный комплект в Qt Creator

    • Запускаем Qt Creator
    • Открываем «Инструменты -> Параметры..»
    • Далее переходим «Сборка и запуск -> Qt Versions»
    • Жмем добавить и выбираем qmake.exe, точнее «X:\Qt\Qt5.5.0_Static\bin\qmake.exe»
    • Переходим во вкладку «Комплекты»
    • Жмем добавить
    • Пишем название нашего комплекта «Qt 5.5.0 Static MinGW 32», в профиле Qt указываем наш статичный профиль, который добавили в Qt Versions, так же указываем версию нашего компилятора и отладчика(MinGW)
    • Все, мы добавили статичный комплект в Qt Creator

    Примечание: в статический комплект не будут включены библиотеки gcc, что бы они так же собирались в исполняемый файл, надо прописать в .pro/.pri

    Спасибо за внимание!

    Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

    Источник

    Windows build qt static

    Подписаться на канал:

    Воспроизведение звукового файла wav на C++ | Программирование С++

    Воспроизводим звуковой файл wav на С++

    Простой кейлоггер на С++ (Keylogger) | Программирование С++

    Пишем простой кейлоггер (keylogger) на С++. Режим видимый и невидимый.

    Кейлоггер (keylogger) — программное обеспечение или аппаратное устройство, регистрирующее различные действия пользователя — нажатия клавиш на клавиатуре компьютера, движения и нажатия клавиш мыши и т. д.

    Из ComboBox в текстовый файл *.txt на C++ (Пример 1) | Программирование С++

    Создаем текстовый файл txt. Выбранные данные из ComboBox переносим в текстовый файл txt и сохраняем на языке C++

    Удалить пробелы в Edit на С++ | Программирование С++

    Удаляем пробелы в Edit.

    Открыть документ Word на С++ | Программирование С++

    Есть какой-то документ Word. Открываем его на С++.

    Принимаем электронную почту на С++ | Программирование С++

    Принимаем письма с электронного почтового ящика своей программой на С++.

    Перемещаем график по листку в Excel на C++ | Программирование С++

    Создаем график в Exccel. Перемещаем его по листку нашей книги.

    Узнать разрядность операционной системы на C++ | Программирование С++

    Узнаем разрядность операционной системы (64 или 32 битная) на C++

    Слушаем онлайн радио при помощи библиотеки BASS на C++ | Программирование С++

    Самый простой способ прослушать онлайн радио через интернет при помощи библиотеки BASS на C++

    Из ComboBox в текстовый файл *.txt на C++ (Пример 2) | Программирование С++

    Создаем текстовый файл txt. Выбранные данные из ComboBox переносим в текстовый файл txt и сохраняем на языке C++. Далее, добавляем еще одну строку с данными в этот же тестовый файл из ComboBox.

    Воспроизведение и остановка звукового файла MP3, MP2, MP1, OGG, WAV, AIFF при помощи библиотеки BASS на C++ | Программирование С++

    Воспроизведение и остановка звукового файла MP3, MP2, MP1, OGG, WAV, AIFF при помощи библиотеки BASS на C++

    Источник

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

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

  • Windows bsod critical process died
  • Windows brute force router
  • Windows bridge как пользоваться
  • Windows bridge for ios
  • Windows box или oem в чем разница