Статическая линковка библиотек 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 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 будет скрыт псевдонимом.
Статическая сборка проекта qt под windows msvc
Статическая сборка проекта Qt под Windows.
Отвязка проекта, сделанного в Qt, от .dll зависимости.
При создании проекта релиза, программа не будет запускаться на другом компьютере без дополнительных библиотек. Это не очень удобно, потому как при потере даже одной, ваш знакомый не увидит ваше творчество. К тому же, они придают программе дополнительный размер. И это тоже минус.
Смотрим данное видео.
Пошаговая настройка статической сборки Qt для Windows:
1. Скачиваем Qt c http://www.qt.io/download-open-source/#section-2 (Открывается в новом окне)
2. Устанавливаем Qt. При установке нажимаем кнопку «Выбрать все»
3. Переходим в папку C:\Qt\ Qt5.5.0 \ 5.5 \Src\qtbase\mkspecs\win32-g++\ ( Подчеркнутое — Изменить под свою версию)
4. Редактируем qmake.conf
5. Переходим в папку Qt\ Qt5.5.0 \ 5.5 \Src\qtbase\ ( Подчеркнутое — Изменить под свою версию)
6. Прямо в папке qtbase создаем батник Install.bat с кодом, который написан внизу или копируем уже готовый.
Код батника (Install.bat):
Внимание! на строчку
set PATH=c:\Qt\Qt5.5.0\5.5\mingw492_32\bin;c:\Qt\Qt5.5.0\Tools\mingw492_32\bin;%PATH% Измените Qt5.5.0\5.5 на свою версию.
8. Запускаем батник, соглашаемся с лицензией, нажимаем «y» и ожидаем окончании работы.
По окончании выполнения батника, делаем следующее:
9. Запускаем Qt Creator.
10. Переходим «Инструменты» -> «Параметры» -> «Сборка и запуск» -> «Qt Versions» и нажимаем «Добавить»
11. Добавляем путь C:\Qt\ Qt5.5.0\5.5 \Src\qtbase\bin\qmake.exe ( Подчеркнутое — Изменить под свою версию)
12. Для большей удобности в «Название профиля» дописываем Static. Жмем кнопку «Применить».
13. Переходим в «Комплекты» и нажимаем «Добавить»
14. Меняем «Название» на Static.
15. В «Профиль Qt:» меняем на новый профиль «Qt 5.5.0 (Src) Static». Жмем кнопку «ОК» или «Применить».
Все готово. Теперь проверяем на простой программе и приступаем к программированию.
Статическая сборка QT 5.7.0 c MSVC-2015
Собрал QT 5.7.0 в соответствие с описанием по ссылке http://amin-ahmadi.com/2016/09. udio-2015/ ошибок не было. В Visual Studio 2015 добавил новую сборку QT в Qt VS Tools -> Qt Options, установил настройки Qt для проекта (правая кнопка мыши -> Qt Projects Settings), добавил путь к .lib. При компиляции линковщик ругается, что сборка Qt не MT. Что я упустил?
MSVC 2015 оптимизация в компиляторе
Проблема такая: написал программу в Dev-C++, отладил, накрутил оптимизацию, все дела. Время.
Сборка Qt5 со статическим рантаймом (MT/MTd) под msvc 2010
Всем доброго времени суток. Подскажите, если возможность собрать Qt 5.3.2 в конфигурации shared, но.
Статическая сборка ПО
Добрый день всем. В ПО имеется mainToolBar с иконками(их формат *.svg). Оконки находятся в файле.
Статическая сборка Qt
Доброе утро! почитала про это дело, и возникли вопросы при статической сборке, мы сначала.
Нету там подобных флагов(
Добавлено через 5 часов 4 минуты
Может я просто не сделал какие-то настройки проекте?
Добавлено через 33 минуты
Сейчас собрал QT 5.6.2, линковщик начил ругаться и выдавать ошибки следующего вида:
Error LNK2001 unresolved external symbol _hb_blob_create
Error LNK2001 unresolved external symbol _hb_blob_get_empty
Error LNK2001 unresolved external symbol _hb_buffer_add_utf16
Error LNK2001 unresolved external symbol _hb_buffer_allocation_successful
Error LNK2001 unresolved external symbol _hb_buffer_clear_contents
И таких ошибок аж 113 штук
Добавлено через 31 минуту
Добавил дополнительные зависимости:
qtharfbuzzng.lib
opengl32.lib
Ws2_32.lib
qwindows.lib
imm32.lib
winmm.lib
Qt5PlatformSupport.lib
Осталось 11 ошибок линковщика:
Error LNK2001 unresolved external symbol _pcre16_assign_jit_stack
Error LNK2001 unresolved external symbol _pcre16_compile2
Error LNK2001 unresolved external symbol _pcre16_config
Error LNK2001 unresolved external symbol _pcre16_exec
Error LNK2001 unresolved external symbol _pcre16_free
Error LNK2001 unresolved external symbol _pcre16_free_study
Error LNK2001 unresolved external symbol _pcre16_fullinfo
Error LNK2001 unresolved external symbol _pcre16_jit_stack_alloc
Error LNK2001 unresolved external symbol _pcre16_jit_stack_free
Error LNK2001 unresolved external symbol _pcre16_study
Статическая сборка Qt 5.12 из исходников под Windows
Потребовалось мне тут, что бы Qt приложение было в одном exe. Для этого придётся перекомпилировать Qt.
Качаем: Perl, версию 32х битную.
Качаем: Python 2 (У меня 2.7).
Качаем: MinGW, y меня 730 (для распаковки нужен 7Zip, запускать «C:\Programm Files (x86)\7-Zip\7zFM.exe»).
Открываем консольку (Win+R, вводим cmd), прописываем необходимые системные переменные (пути замените на свои):
Переходим в папку, в которой будем развлекаться, качаем исходники Qt:
Собираем (Часа 4) и ставим:
После установки настраиваем QtCreator для использования новой версии фреймворка:
В верхней менюшке Инструменты -> Параметры -> Сборка и запуск
Компиляторы -> Добавить
MinGW -> C++
Название: Qt 5.12 Static MinGW
Путь: C:\MinGW\mingw730_32\bin\c++.exe
Отладчики -> Добавить
Название: Qt 5.12 Static DBG
Путь: C:\MinGW\mingw730_32\bin\gdb.exe
Профили Qt -> Добавить
Название: Qt 5.12 Static
Путь: C:\QtStatic\qt5\qtbase\bin\qmake.exe
Комплекты -> Добавить
Название: Qt 5.12 Static
Тип устройства: Desktop
Компилятор C++: Qt 5.12 Static MinGW
Отладчик: Qt 5.12 Static DBG
Профиль Qt: Qt 5.12 Static
Можно попробовать сделать простенький проект. В параметрах сборки и запуска поставьте «Release» т.к. мы только эту версию собрали. Так же в «*.pro» файл необходимо добавить указание на статическую сборку и линковку libGCC.
Статическая сборка проекта qt под windows msvc
Статическая сборка Qt 5.14.0 в msvc2017
Для начала подготовим все необходимые элементы:
- Установим Visual Studio 2017 x64
- Скачаем помощник установки Qt
- Установим RUBY
- Установим Python
- Установим Perl
- Сконфигурируем конфиг файл Qt msvc2017
- Пропишем все необходимые адреса в системный PATH
- Перезагрузим ПК
- Скомпилируем библиотеку Qt
- Подключим библиотеку в Qt Creator
- OS Windows 10 Pro x64
После того когда установите Visual Studio 2017 x64 PRO приступаем к скачиванию qt-unified-windows-x86-3.2.1-online по адресу Download Qt: Install and get started Когда вы его запустите и дойдете до этапа выбора модулей, вам необходимо будет сделать как на изображениях ниже:
Когда будете выбирать место установки, будьте внимательны, потому что Буква логического раздела в вашей системе, будет намертво привязана к статической сборке и вы не сможете перенести эту библиотеку на другой диск или изменить букву, иначе не чего не будет работать.
Теперь приступаем к скачиванию и установки этих вспомогательных пакетов для разных языков, возможно не всё может понадобиться но Питон точно надо ставить а лучше всё как есть что бы не каких проблем не когда не было. (там где возможно всегда выбираем x64 !!)
Установив все пакеты приступаем к конфигурированию файла msvc-desktop.conf его можно найти по адресу “ E:\QT\5.14.0\Src\qtbase\mkspecs\common\msvc-desktop.conf ” – открываем его в редакторе и ищем следующие параметры ( заменяем значения на мои ):
- QMAKE_CFLAGS_RELEASE = -O2 -MT -Zc:strictStrings
- QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi -Zc:strictStrings
- QMAKE_CFLAGS_DEBUG = -Zi -MTd
А сейчас самое главное без чего не будет работать наша компиляция – это необходимые адреса в системном PATH. Открываем свойства системы – “Изменить параметры” – “Дополнительно” – “Параметры среды” – “Path” – “Изменить” – “Создать” и добавляем следующие адреса:
Не забудьте во всех моих адресах заменить букву диска и папки в которой установлена библиотека так как у всех она может быть другой.
Обязательно после этой процедуры перезагружаемся. Когда вы загрузитесь находим в панели управлении папку “ Visual Studio 2017 ” – “ Visual Studio Tools ” – и запускаем от прав Администратора ярлык консоли “ Командная строка разработчика для VS 2017 “.
после этого у вас в консоли должен стать рабочий адрес -“ E:\QT\5.14.0\Src ” – когда вы этого добьетесь введите команду:
configure -release -opensource -static -platform win32-msvc2017 -qt-zlib -opengl desktop -static -mp -nomake examples -nomake tests
В консоли после конфигурирования вам предложат выбрать лицензию, нажимаем Y и Enter .
Последняя команда: jom
после которой будет производиться компиляция всей библиотеки посредством Вижуал студии причём с использованием всех потоков и ядер вашего процессора так что в момент компиляции ПК может подтормаживать а скорость компилирования напрямую зависит от производительности вашего процессора и Диска.
Если в конце процедуры вы увидите что то подобное, без ошибок и прочих слов ERROR то считай вы счастливчик статической сборки QT и вам осталось лишь её подключить в Qt Creator.
Подключение не сложное, добавляем всё как у меня на скриншотах:
Добавляем Профиль Qt и пишем своё имя библиотеки Static.
Указываем через какой компилятор всё это будет работать, вообщем делаем всё как у меня и не паримся.
Создаём наш первый статический проект, предварительно выбрав именно нашу новую библиотеку.
В своё время я сильно намучился с данными плясками и настройками, к тому же в интернете мало рабочих и хороших статей на эту тему. Я просто не мог оставить этот момент без внимания и не помочь другим, мне хотелось бы лишь одной мелочи от вас – пожалуйста ставьте лайк этой статье :))))… и пишите свои комментария …