В данной статье я опишу как сделать отдельный комплект со статической линковкой библиотек Qt5. Если другими словами, мы сможем собирать проект в один исполняемый файл без Qt *.dll.
Подготовка
Нам понадобится непосредственно сам Qt, с официального сайта Qt 5.x.x for Windows 32-bit (MinGW).
Во время установки поставьте галочку на «Source Components», т.к. исходники будут нам необходимы для сборки.
В своем примере я буду использовать Qt 5.7.0 for Windows 32-bit (MinGW 5.3.0).
Начнем
Сборка комплекта
Создаем резервную копию qmake.conf, он находится в «Qt5.7.0\5.7\mingw530_32\mkspecs\win32-g++»
Делаем изменения в qmake.conf
1 2 |
QMAKE_LFLAGS += -static-libgcc -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc DEFINES += QT_STATIC_BUILD |
Создаем резервную копию исходников Qt, они находятся в «Qt5.7.0\5.7\Src»
Теперь запускаем терминал Qt — Qt 5.7 for Desktop (MinGW 5.3.0 32 bit), он находится
в «Все программы -> Qt5.7.0 -> 5.7 -> MinGW 5.3.0 (32-bit)» или же полным путем “%appdata%\Microsoft\Windows\Start Menu\Programs\Qt 5.7.0\5.7\MinGW 5.3.0 (32-bit)”
Переходим в директорию с исходниками Qt, вводим команду
1 |
cd C:\Qt\Qt5.7.0\5.7\Src |
Конфигурируем этап установки, вводя команду, где путь после -prefix, местоположение комплекта сборки
1 |
configure -static -platform win32-g++ -prefix "C:\Qt\Qt5.7.0_Static" -release -opensource -confirm-license -nomake examples -nomake tests -nomake tools -opengl desktop -no-angle -qt-sql-sqlite -make libs -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype |
По завершению конфигурирования, начинаем компиляцию исходников Qt, командой
1 |
mingw32-make |
После компиляции, будет несколько ошибок, связанных с либой QXml. Не обращаем на них внимание, они никак не скажутся на нашей сборке. Ошибка возникает из за python-a, которого нет в системе. Чтобы ошибка не раздражала глаз – просто установите его и запустите сборку заново. НЕ забудьте перезапустить консоль Qt.
Копируем файлы в указанный нами каталог на этапе конфигурирования, командой
1 |
mingw32-make install |
После копирования, так же будет несколько ошибок, не обращаем на них внимание.Не видел.
Теперь восстанавливаем резервные копии исходников Qt и qmake.conf
Добавляем статичный комплект в Qt Creator
Запускаем Qt Creator
Открываем «Инструменты -> Параметры..»
Далее переходим «Сборка и запуск -> Qt Versions»
Жмем добавить и выбираем qmake.exe, точнее «С:\Qt\Qt5.7.0_Static\bin\qmake.exe»
Переходим во вкладку «Комплекты»
Жмем добавить
Пишем название нашего комплекта «Qt 5.7.0 Static MinGW 32», в профиле Qt указываем наш статичный профиль, который добавили в Qt Versions, так же указываем версию нашего компилятора и отладчика(MinGW)
Все, мы добавили статичный комплект в Qt Creator
Примечание: в статический комплект не будут включены библиотеки gcc, что бы они так же собирались в исполняемый файл, надо прописать в .pro/.pri
1 |
QMAKE_LFLAGS_RELEASE += -static -static-libgcc |
Руководствовался информацией с англ. инструкции
Взято тут.
Добавить комментарий