Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/35: Рейтинг темы: голосов - 35, средняя оценка - 4.51
23 / 23 / 5
Регистрация: 05.12.2013
Сообщений: 215
1

Статическая сборка 5.5.1

30.12.2015, 23:36. Показов 6763. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем!
В связи с множественными обращениями по поводу разъяснения ситуации со статической сборкой Qt 5.5.1 решил я сделать подробную инструкцию. Сначала хотел сделать видео, но замотался и решил ограничиться текстом. Поэтому, кому действительно надо, пусть читает, вникает и делает. Сам на себе испытывал, всё работает.

Встречаем, инструкция:

"Итак, мы решили установить Qt Creator. Устанавливать будем версию 5.5.1. Качаем отсюда -

http://download.qt.io/official... 5.5/5.5.1/ . Версия qt-opensource-windows-x86-mingw492-5.5.1.exe .

Запускаем программу-установщик... Далее. Выбираем ПУТЬ установки программы и сопутствующих ей компонентов (в заранее созданную нами папку

Qt)... Далее. Нажимаем кнопку "Выбрать всё" и, опять же, Далее. Соглашаемся с условиями лицензионного соглашения. Читать его вовсе не

обязательно. Далее. И снова Далее. Всё готово к установке. Установить! В разных случаях установка может занимать от 5 до 30 минут... Снимаем

галочку с Open Readme и жмём "Завершить".. Qt Creator успешно установлен и запущен, но радоваться ещё рано. Дело в том, что, хоть Вы и

сможете писать и отлаживать программы в этой среде разработки, но выпустить программу, которую смогут запустить другие пользователи Вы, пока

еще, не сможете. И сейчас мы в этом убедимся. На вкладке "Разработка" создаём проект... Выбираем GUI приложение Qt. Указываем в качестве

пути нашу папку QtProjects. Название нам сейчас не важно, жмём далее. Далее. Создаём простейший шаблон оконного приложения, а именно -

пустое окно. Далее. И завершить. Qt Creator автоматически создал нам необходимые файлы с кодом, разбирать который мы, пока, не будем, ведь

нас сейчас интересует другая сторона вопроса. А именно - будет ли адекватно работать программа, скомпилированная из этого кода?

Меняем отладку на выпуск... И жмём на зеленую стрелочку "Запустить"... Как мы можем видеть - запустилась программа, представляющая собой

пустое окно. В принципе, другого мы и не ожидали. Закрываем окно, программа завершается. В отчетах по выводу приложения мы видим, откуда был

произведён запуск файла. Копируем этот путь и вставляем в проводник. А вот и наш файл! untitled.exe. Пробуем запустить! Какая неудача! И то

же самое получится, если Вашу программу попробует запустить кто-то другой.

Чтобы выпускать программы, независимые от динамических библиотек, необходимо провернуть довольно сложную махинацию.

Закрываем Qt Creator и приступаем к настройке. Открываем нашу папку Qt. Там папку 5.5.1. Src, qtbase, mkspecs и ищем win32-g++. И заходим в

неё. Нас интересует файл qmake.conf. Если у вас установлен текстовый редактор notepad++, то жмём правой кнопкой мыши по файлу и выбираем

Edit with notepad++. Если у Вас нет notepad++ и в контекстном меню файла нет такого варианта, как "Открыть с помощью...", то с зажатым

шифтом кликаем правой кнопкой мыши по свободному месту в окне проводника и выбираем пункт "Открыть окно команд". В консоль пишем

"notepad.exe qmake.conf". Итак, мы открыли qmake.conf в текстовом редакторе. Чуть ниже середины ищем строку QMAKE_LFLAGS =. После = следует

добавить "-static -static-libgcc". Сохраняем и закрываем.

Теперь открываем меню "Пуск" и ищем там папку Qt 5.5.1. Вот она. Там папка 5.5.1, а там папка MinGW. Открываем программу Qt 5.5.1 for

Desktop от имени Администратора.. Пишем там следующее: cd ../src/qtbase. Перемещаемся в папку qtbase и копируем путь до неё. Пишем set

QTDIR= и вставляем то, что мы скопировали. Enter. Далее пишем set QMAKESPEC=win32-g++. Enter. Теперь немного посложнее - пишем set PATH=.

Перемещаемся в папку 5.5.1, заходим в Mingw48_32, bin. Копируем путь, вставляем, точка с запятой. Прыгаем в папку 5.5.1, Src, qtbase, bin. И

этот путь мы копируем и вставляем в консоль. Теперь, после точки с запятой пишем - %PATH%. Enter. Все необходимые переменные срЕды мы

создали, колдуем дальше. Пишем configure.exe -release -opensource -confirm-license -c++11 -static -opengl desktop -no-angle -nomake

examples. Жмём Enter...

Теперь ждём. Ждём недолго. Максимум минут 5, на хорошей машине гораздо меньше... По окончании этого времени видим такую картину. Пишем -

mingw32-make.exe sub-src. Далее имеет смысл указать программе, сколько ядер доступно нашей машине для оптимизации времени сборки

(независимые друг от друга операции будут параллельно выполняться разными ядрами, что существенно сократит время). Для этого надо дописать

-j и количество ядер компьютера, увеличенное на единицу. Например, если у нас 4 ядра, то напишем 5. Чтобы узнать, сколько ядер у нашего

процессора жмём Пуск, правой кнопкой мыши по "Компьютеру", "Управление". Диспетчер устройств, процессоры. Мы увидим в этой вкладке ровно

столько устройств, сколько у нас ядер. Прибавляем к этому числу единицу и пишем после '-j'... Что ж, Enter.

Процесс этот долгий, хотя мы и приняли все меры по его сокращению. На всё про всё уйдёт минут 20. Всё готово, закрываем консоль. Заходим в

папку QtProjects.. и удаляем наш первый, неудачный проект.

И зпускаем, наконец-то, наш Qt Creator... Нет, писать программы ещё не пора. Заходим в "Инструменты", "Параметры". "Сборка и запуск",

"Профили Qt". Добавить. Папка с номером версии, Src, qtbase, bin и выбираем тут qmake.exe. Подписываем новоиспечённый профиль, как Static.

Теперь прыгаем в комплекты. Добавить. Называем комплект "Static", жмём кнопку "Применить" и профиль Qt выбираем тоже Static. Компилятор

должен быть обязательно MinGW. Окей. Создаём проект. Точно такой же. Далее. Теперь запоминаем, это придётся делать каждый раз при создании

нового проекта. В Desktop снимаем галочку с Release, а в Static снимаем галочку с Debug. Это позволит нам производить отладку программы,

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

динамические библиотеки внутри своего кода. Такая программа будет весить много, зато запустится на любом компьютере с Windows.

Жмём далее. Опять заказываем шаблон пустого окна. Далее. Завершить. Теперь можно нажать на зелёную стрелочку, что бы запустить отладку.

Опять видим пустое окошко - нашу программу. Закрываем. Теперь меняем отладку на выпуск и снова запускаем. Видим всё то же самое окошко, но

это - уже готовая к работе версия нашей программы. Копируем путь до программы и вставляем его в проводник. В прошлый раз нас постигла

неудача при попытке запуска программы, но СЕЙЧАС - всё прекрасно запускается.

Переходим в папку QtProject и видим, что Qt Creator создал здесь три папки. Папка untitled имеет имя нашего проекта и содержит в себе только

текстовые файлы с кодом программы. Она весит копейки. Папка, название которой заканчивается словом "Debug" содержит отладочные файлы и

используется средой разработки для отладки проекта. Её вес уже посерьезнее - чуть больше мегабайта. Ну и последняя папка - это папка для

выпуска нашего проекта. Она содержит кое-какие файлы, задействованные при компиляции, и, что самое главное, она содержит нашу программу.

Именно готовая программа и придаёт этой папке столь солидный вес - более двенадцати с половиной мегабайтов.

Единственная папка, которую нельзя удалять, если мы не хотим потерять проект - это папка с именем проекта. Остальные можно удалять, они

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

проектов. Ведь, если у нас будет, например, 90 проектов, то их суммарный вес составит более одного гигабайта. Ерунда, конечно, для

современных компьютеров, но всё же..

Самое главное, что теперь наш Qt Creator готов к работе! Спасибо за внимание и пока!"
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.12.2015, 23:36
Ответы с готовыми решениями:

Статическая сборка qt
Здравствуйте. Сейчас я пытаюсь собрать qt. Делаю я это так C:\Qt\5.4\Src\qtbase>set...

Статическая сборка Qt 5.1.1
Тема довольно забитая, но все же. Пытался собрать по гайду. При сборке произошла ошибка: В...

Статическая сборка
Здравствуйте, много информации по этому поводу в интернете, но у меня проблемы. Я не могу найти...

Статическая сборка
Делал всё по инструкции, дошел до момента, когда надо зайти из командной строки в папку mingw\bin и...

4
4 / 4 / 0
Регистрация: 13.10.2013
Сообщений: 180
05.01.2016, 14:25 2
Очень полезная инфа. Но в данный момент очень нужно то же самое но под линукс. Если разберусь - отпишусь.
0
652 / 462 / 80
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
05.01.2016, 17:56 3
Kapitan79, Сборка Qt в статику
0
10 / 8 / 5
Регистрация: 06.12.2018
Сообщений: 79
08.05.2019, 00:56 4
Цитата Сообщение от Nelkor Посмотреть сообщение
Пишем configure.exe -release -opensource -confirm-license -c++11 -static -opengl desktop -no-angle -nomake
examples. Жмём Enter...
configure.bat, во всяком случае в версии 5.8.*
но автор постарался от души, большое спасибо!
0
Эксперт .NET
10566 / 6490 / 1506
Регистрация: 25.05.2015
Сообщений: 19,659
Записей в блоге: 14
08.05.2019, 06:15 5
Статическая сборка Qt5.9.1 в Win8. -shared или -static ?
Кликните здесь для просмотра всего текста
0
08.05.2019, 06:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2019, 06:15
Помогаю со студенческими работами здесь

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

Статическая сборка
Собираю проекты, использовав этот мануал https://www.cyberforum.ru/qt/thread1629362.html. В одном...

Статическая сборка Qt 5.2
Сделал статическую сборку по туториалу. Все было хорошо до сегодняшнего дня, а вся проблема в том,...

Статическая сборка Qt
Доброе утро! почитала про это дело, и возникли вопросы при статической сборке, мы сначала...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru