Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2014, 16:45   #1
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию Инструкция для сборки приложений на Qt в один exe без зависимостей от libstdc++-6.dll, libgcc_s_dw2-1.dll, Qt5Core.dll и т.д.

Привет! Возможно кому-нибудь пригодится моя пошаговая инструкция

Инструментарий:
- Версия Qt: Qt 5.2.0 for Windows 32-bit (MinGW 4.8, OpenGL, 689 MB)

Примечание: после сборки можно будет создавать статические приложения, которые не требуют библиотек Qt и MinGW. Можно будет переключаться между сборками (которая по умолчанию и статической) через QtCreator.

- скачиваем и устанавливаем Qt 5.2.0 for Windows 32-bit (MinGW 4.8, OpenGL, 689 MB) (при установке ставим галочку Source Components) http://qt-project.org/downloads

- переходим в каталог C:\Qt\Qt5.2.0\5.2.0\Src\qtbase\mksp ecs\win32-g++ и открываем файл "qmake.conf"

- в файле "qmake.conf" отыскиваем переменную QMAKE_LFLAGS и приравниваем ей значение, вот так:

Цитата:
QMAKE_LFLAGS = -static -static-libgcc
- отрываем терминал Пуск -> Qt 5.2.0 -> 5.2.0 -> MinGW 4.8 (32-bit) -> Qt 5.2.0 for Desktop (MinGW 4.8 32 bit)

- переходим в каталог с исходниками Qt, для этого вводим команду и нажимаем "Enter":

Цитата:
cd c:\Qt\Qt5.2.0\5.2.0\Src\qtbase
- конфигурируем этапы установки, для этого вводим команду и нажимаем "Enter":

Цитата:
configure -static -prefix "C:\Qt\Qt5.2.0_static" -opengl desktop -nomake examples -nomake tests
- выбираем тип лицензии "Open Source Edition" и подтверждаем лицензию

- ожидаем окончания конфигурирования

- производим компиляцию исходников Qt, для этого вводим команду и нажимаем "Enter":

Цитата:
mingw32-make
- ожидаем окончания компиляции исходников (на моей машине это заняло 1 час 20 минут)

- копируем файлы в каталог установки (каталог установки мы указали на этапе конфигурирования C:\Qt\Qt5.2.0_static), для этого вводим команду и нажимаем "Enter":

Цитата:
mingw32-make install
- ожидаем окончания копирования

- запускаем QtCreator

- в меню нажимаем "Инструменты" -> нажимаем "Параметры"

- слева выбираем "Сборка и запуск", а справа выбираем вкладку "Профили Qt"

- нажимаем кнопку "Добавить" и указываем путь до qmake.exe "C:\Qt\Qt5.2.0_static\bin\qmake.exe "

- нажимаем кнопку "Применить"

- переходим на вкладку "Комплекты" и нажимаем кнопку "Добавить"

- в поле "Название" вводим имя Desktop Qt 5.2.0 Static MinGW 32 bit

- если поле "Отладчик" пусто, то нажимаем кнопку "Управление"

- нажимаем кнопку "Добавить", вводим название (например gdb) и указываем путь к отладчику "C:\Qt\Qt5.2.0\Tools\mingw48_32\bit \gdb.exe"

- нажимаем кнопку "Применить"

- возвращаемся на на вкладку "Комплекты"

- в выпадающем списке "Профиль Qt" выбираем тот, которые мы указали на вкладке "Профили Qt"

- выделяем комплект "Desktop Qt 5.2.0 Static MinGW 32 bit" и нажимаем кнопку "Сделать по умолчанию" (если хотим чтобы комплект для статической сборки был поумолчанию)

- нажимаем кнопку "OK"

- протестируем, что приложения собираются статически

- создадим проект, для этого в меню нажимаем "Файл" -> нажимаем "Новый файл или проект..."

- слева в списке "Проекты" выбираем "Приложения" -> справа выбираем "Приложения Qt Widgets"

- в поле "Название" вводим: Hello_Static_Qt

- в поле "Создать" в вводим путь к папке с проектами, например: I:\QtProjects

- нажимаем кнопку "Далее"

- ставим галочки (по умолчанию должно быть выбрано) на два комплекта:

Desktop Qt 5.2.0 MinGW 32 bit
Desktop Qt 5.2.0 Static MinGW 32 bit

- нажимаем кнопку "Далее" -> нажимаем кнопку "Завершить"

- на панели слева нажимаем "Проекты"

- в верхней части экрана нажимаем "Desktop Qt 5.2.0 Static MinGW 32 bit"

- в разделе "Настройки сборки" в выпадающем списке "Изменить конфигурацию сборки" выбираем "Выпуск"

- находим раздел "Этапы сборки"

- напротив "qmake" выбираем "Подробнее"

- в выпадающем списке "Конфигурация сборки qmake" выбираем "Выпуск"

- в поле "Дополнительные параметры" вводим: "CONFIG += release" (с двойными кавычками)

- на панели слева нажимаем "Редактор"

- в меню нажимаем "Сборка" и нажимаем "Собрать проект "Hello_Static_Qt""

- переходим в папку с exe-файлом и запускаем его: I:\QtProjects\build-Hello_Static_Qt-Desktop_Qt_5_2_0_Static_MinGW_32bit-Выпуск\release

Последний раз редактировалось 8Observer8; 22.01.2014 в 16:53.
8Observer8 вне форума Ответить с цитированием
Старый 22.01.2014, 18:03   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,618
По умолчанию

Со статической сборкой Qwt проблем нет?
У меня когда-тот давно что-то не получилось (не помню точно в чем была проблема), а у Вас?
rrrFer вне форума Ответить с цитированием
Старый 22.01.2014, 19:42   #3
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

С Qwt не пробовал. Если у тебя получится, то скинь какие-нубудь полезные указания сюда. Хотя это другая тема, но всё же близкая.

Последний раз редактировалось 8Observer8; 22.01.2014 в 20:32.
8Observer8 вне форума Ответить с цитированием
Старый 03.02.2014, 17:02   #4
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,152
По умолчанию

еще было бы интересно пошагово узнать, как в статическом варианте вырезать все, что не нужно в данном проекте (а ненужного там получится ~80%).
Smogg вне форума Ответить с цитированием
Старый 03.06.2014, 00:02   #5
QVO
 
Аватар для QVO
 
Регистрация: 09.02.2012
Сообщений: 9
По умолчанию

Цитата:
C:\Qt\Qt5.3.0\5.3\Src\qtbase>config ure -static -prefix "C:\Qt\Qt5.3.0_static" -o
pengl desktop -nomake examples -nomake tests -platform
Unable to detect the platform from environment. Use -platform command lineargume
nt or set the QMAKESPEC environment variable and run configure again
See the README file for a list of supported operating systems and compilers.
На этом дело встало, что он требует?
QVO вне форума Ответить с цитированием
Старый 03.06.2014, 08:01   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Переведите что ам написали и поймете, что требует.
p51x вне форума Ответить с цитированием
Старый 03.06.2014, 10:43   #7
QVO
 
Аватар для QVO
 
Регистрация: 09.02.2012
Сообщений: 9
По умолчанию

Вчера разобрался с параметрами, но входе работы батника выскакивает такая ошибка и завершается процесс. В папке mingw есть только qmake.

bat file
Код:
SET QTDIR=C:\Qt\Qt5.3.0\5.3\Src\qtbase\
SET PATH=C:\Qt\Qt5.3.0\5.3\mingw482_32\bin; C:\Qt\Qt5.3.0\5.3\Src\qtbase\bin;%PATH%
cd C:\Qt\Qt5.3.0\5.3\Src\qtbase\
configure -static -opengl desktop -platform win32-g++ -nomake examples -nomake tests -qt-sql-mysql
pause
error
Цитата:
Creating qmake...
execute: File or path is not found (mingw32-make)
execute: File or path is not found (mingw32-make)
Cleaning qmake failed, return code -1
QVO вне форума Ответить с цитированием
Старый 08.07.2014, 20:44   #8
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Я эту инструкцию пока не могу доделать, так как обхожусь "dll". Как время найду, то доделаю Если есть идеи, то пишите в этой теме, там редактировать мне легче: http://www.prog.org.ru/topic_26392_0.html

Вот это сообщение, наверное, в тему: http://www.prog.org.ru/index.php?top...6949#msg196949
8Observer8 вне форума Ответить с цитированием
Старый 10.02.2015, 10:49   #9
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Подпишитесь на мой блог, будет интересно: Статическая сборка Qt 5.4 (MinGW) для Win7. Сжатие exe до мин. размера с помощью upx
8Observer8 вне форума Ответить с цитированием
Старый 03.06.2015, 15:41   #10
kpohoc_007
Новичок
Джуниор
 
Регистрация: 03.06.2015
Сообщений: 1
По умолчанию

а как собирать,,если в проекте есть activeqt/qxobject? у меня компилятор ругается(
kpohoc_007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# & DLL: как указать, что загружать DLL нужно из ЗАДАННОЙ папки "D:\My\Path\a.dll" ? AntyDES C# (си шарп) 11 10.10.2012 20:00
Передать че-нибудь в DLL / Из DLL прочитать переменную EXE WhiskasTM Общие вопросы Delphi 9 02.08.2012 13:33
Использование формы из DLL-сборки AgentSmit C# (си шарп) 1 10.10.2011 11:28
Windows I/o без Kernel32.dll и Advapi32.dll coinkrsk Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 31 27.06.2010 08:52
Запуск Load.dll (бывшая Load.exe) в дереве проц-ов, Как запустить прогой на C# .dll-ку kapustin Общие вопросы .NET 10 23.09.2009 22:20