Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Qt

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 365, средняя оценка - 4.94
StarWind
1 / 1 / 0
Регистрация: 06.10.2012
Сообщений: 27
#1

Отучение Qt 5.2.0 от библиотек MinGW и Qt - C++ Qt

05.01.2014, 23:31. Просмотров 54209. Ответов 170
Метки нет (Все метки)

Данная тема уже рассматривалась тут Сборка Qt: отучение Qt от mingw10.dll, libgcc_s_dw2-1.dll и других Qt***.dll По первому способу у меня не получилось. Может есть какие-то более современные гайды? Мое гугление ничего не дало. Или второй и третий способ с распаковкой исходников от 4.7.4 подойдет для 5.2?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2014, 23:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отучение Qt 5.2.0 от библиотек MinGW и Qt (C++ Qt):

Отучение Qt 5.2.0 от библиотек - C++ Qt
Привет, форумчане! Недавно установил Qt 5.2.0 на Windows. Столкнулся с проблемой требования кучи библиотек приложениями. Нашёл уже не...

Отучение Qt 5.2.0 от библиотек - C++ Qt
http://www.cyberforum.ru/qt/thread1063918.html, пост Flassie, так вот у меня файл configure в QT 5.4 весит 3 кб и такой строчки там и...

Отлучение Qt 5.3.0 от библиотек MinGW и Qt - C++ Qt
Отлучение Qt 5.3.0 от библиотек MinGW и Qt У меня Винда, или ОС Windows 7 64-bit (Ultimatiym) Инструкция по видео Делал все, по...

Отучение qt 5.1.1 от *.dll - C++ Qt
Да да... знаю. Уже надоели такие темы. Но всё же пишу её, потому как выскочила ошибка, и справиться с ней не выходит: mingw32-make.exe:...

Отучение qt 5.0.2 от *.dll - C++ Qt
Читал разные темы, но с qt 5 все несколько иначе. Все делал по статье http://habrahabr.ru/post/137233/ QMAKE_LFLAGS = -static и выполнил ...

qt отучение от opencv - C++ Qt
Добрый день форумчане скажите можно ли отучить qt от библиотеки opencv?

170
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,796
Записей в блоге: 17
11.03.2015, 14:58 #106
Цитата Сообщение от maksis9n Посмотреть сообщение
подскажи пожалуйста как динамическую сборку делать? и будет ли она к примеру работать на компьютерах где нету qt?
Динамическая сборка- это обычная сборка которую можно скачать с оф.сайта (которая тянет комплект dll-лок и плагинов)
1
maksis9n
2 / 2 / 0
Регистрация: 02.01.2013
Сообщений: 50
11.03.2015, 15:36 #107
ШКІПЕР, Avazart, спасибо большое за пояснение)
0
Bmg113
201 / 147 / 5
Регистрация: 14.03.2013
Сообщений: 784
01.04.2015, 16:45 #108
Получилось сделать Статику по инструкции. (Текстовый вид - Ссылка и Видео вид - Ссылка)
Работает ActiveQt
Работает Qt Multimedia
Не работает Qt WebKit

p.s. Тестил на Qt 5.4.0
0
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,796
Записей в блоге: 17
01.04.2015, 16:55 #109
Bmg113, Опции сборки указал бы что ли ..
0
Bmg113
201 / 147 / 5
Регистрация: 14.03.2013
Сообщений: 784
01.04.2015, 17:25 #110
Цитата Сообщение от Avazart Посмотреть сообщение
Опции сборки указал бы что ли ..
Ключевые моменты.

1). Установить.
a) Python
б) Ruby
в) Perl
2). Добавить в конец файла С:\Qt\5.3\Src\qtbase\mkspecs\win32-g++\qmake.conf (Если путь по умолчанию)
# Static
QMAKE_LFLAGS += -static -static-libgcc
QMAKE_CFLAGS_RELEASE -= -O2
QMAKE_CFLAGS_RELEASE += -Os -momit-leaf-frame-pointer
DEFINES += QT_STATIC_BUILD
CONFIG += static
# Static
3). Создать make.bat и запустить в обычной консоле. Вот текст make.bat.
set QtDir=C:\Qt\5.3\static
set MingwDir=C:\Qt\Tools\mingw482_32
set QtSrcDir=C:\Qt\5.3\Src
set CMAKE_INCLUDE_PATH=%MingwDir%\i686-w64-mingw32\include
:: Set a clean path including MinGW.
set PATH=%PATH%;%MingwDir%\bin;%MingwDir%\opt\bin
:: Force English locale to avoid weird effects of tools localization.
set LANG=en
:: Set environment variable QT_INSTALL_PREFIX. Documentation says it should be
:: used by configure as prefix but this does not seem to work. So, we will
:: also specify -prefix option in configure.
set QT_INSTALL_PREFIX=%QtDir%
:: Configure, compile and install Qt.
cmd /c "%QtSrcDir%\configure.bat -static -debug-and-release -platform win32-g++ -prefix %QtDir% -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -qt-sql-sqlite -no-openssl -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests" > log_cmd.txt
mingw32-make -k -j4 > log_make.txt
mingw32-make -k -j4 install > log_make_install.txt
4). Ну добавить новый qmake в настройках и добавлять в каждый проект в pro файл.
QMAKE_LFLAGS += -static -static-libgcc

p.s. всегда Вы не довольны =)
3
CriDos
Поклонник Qt
311 / 208 / 40
Регистрация: 09.11.2013
Сообщений: 336
Записей в блоге: 1
21.07.2015, 21:57 #111
Ну что ж, недавно полностью переработал свой скрипт статической сборки Qt, с учётом всех требуемых мне плюшек (qml, qt3d, WinExtras и т.д.).
Может пригодится кому
Теперь не требуется вносить правки в qmake.conf, т.к. имеющиеся опции конфигуратора (-static -static-runtime) позволяют полностью избавиться от сторонних библиотек.
Поддерживается создание статически слинкованных библиотек.
Qt 5.5 собирал вот этим: i686-5.1.0-release-posix-dwarf-rt_v4-rev0
Для успешной сборки ActiveQt, требуется внести патч в Mingw-w64: [Mingw-w64-public] [PATCH] Remove duplicates
Вот какой набор статических библиотек Qt я получаю на выходе:
libs

libQt5Bootstrap.a
libQt5CLucene.a
libQt5Concurrent.a
libQt5Core.a
libQt5Declarative.a
libQt5Gui.a
libQt5Help.a
libQt5Location.a
libQt5Multimedia.a
libQt5MultimediaQuick_p.a
libQt5MultimediaWidgets.a
libQt5Network.a
libQt5Nfc.a
libQt5OpenGL.a
libQt5OpenGLExtensions.a
libQt5PlatformSupport.a
libQt5Positioning.a
libQt5PrintSupport.a
libQt5Qml.a
libQt5QmlDevTools.a
libQt5Quick.a
libQt5QuickParticles.a
libQt5QuickTest.a
libQt5QuickWidgets.a
libQt5Script.a
libQt5ScriptTools.a
libQt5Sensors.a
libQt5SerialPort.a
libQt5Sql.a
libQt5Svg.a
libQt5Test.a
libQt5UiTools.a
libQt5WebChannel.a
libQt5WebSockets.a
libQt5Widgets.a
libQt5WinExtras.a
libQt5Xml.a
libQt5XmlPatterns.a
libQt53DCore.a
libQt53DInput.a
libQt53DQuick.a
libQt53DQuickRenderer.a
libQt53DRenderer.a
libqtfreetype.a
libqtharfbuzzng.a
libqtmain.a
libqtpcre.a
libpoly2tri.a
libQt5AxBase.a
libQt5AxContainer.a
libQt5AxServer.a
libQt5Bluetooth.a

plugins

sensors\libqtsensors_generic.a
geoservices\libqtgeoservices_mapbox.a
mediaservice\libdsengine.a
geoservices\libqtgeoservices_osm.a
geoservices\libqtgeoservices_nokia.a
audio\libqtaudio_windows.a
mediaservice\libqtmedia_audioengine.a
position\libqtposition_positionpoll.a
playlistformats\libqtmultimedia_m3u.a
qmltooling\libqmldbg_qtquick2.a
qmltooling\libqmldbg_tcp.a
imageformats\libqwebp.a
imageformats\libqtiff.a
imageformats\libqwbmp.a
imageformats\libqtga.a
imageformats\libqjp2.a
imageformats\libqmng.a
imageformats\libqicns.a
imageformats\libqdds.a
imageformats\libqsvg.a
iconengines\libqsvgicon.a
platforms\libqwindows.a
printsupport\libwindowsprintersupport.a
generic\libqtuiotouchplugin.a
platforms\libqoffscreen.a
bearer\libqnativewifibearer.a
bearer\libqgenericbearer.a
platforms\libqminimal.a
imageformats\libqico.a
qml1tooling\libqmldbg_inspector.a
qml1tooling\libqmldbg_tcp_qtdeclarative.a
sensorgestures\libqtsensorgestures_plugin.a
sensorgestures\libqtsensorgestures_shakeplugin.a

Ну и сам bat скрипт:
bat

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
::Версия 1.0
@ECHO OFF
set MINGW=D:/dev/compilers/mingw-w64/i686-5.1.0-release-posix-dwarf-rt_v4-rev0/mingw32
set QT_OUTPUT_MAKE=D:/dev/Qt/QtLibs/Qt5.5.0_static_release_x32_5.1.0v4-rev0
set QT_SRC=D:/QtSrc
::  [url]http://strawberryperl.com/[/url]
set PERL_BIN=C:/Strawberry/perl/bin
::  [url]http://rubyinstaller.org/downloads/[/url]
set RUBY_BIN=C:/Ruby22/bin
 
set /a NUM_JOBS=%NUMBER_OF_PROCESSORS%-1
set MINGW_BIN=%MINGW%/bin
set PYTHON_BIN=%MINGW%/opt/bin
set QT_QMAKE=%QT_QBASE%/qtbase/bin
set PATH=%MINGW_BIN%;%QT_QMAKE%;%PYTHON_BIN%;%PERL_BIN%;%RUBY_BIN%
cd /D %QT_SRC%
 
echo 1) Configure (default)
echo 2) Make
echo 3) Install
set /p step=Enter step: 
if "%step%"=="1" goto configure
if "%step%"=="2" goto make
if "%step%"=="3" goto install
goto configure
 
:configure
echo ============== Running configure ==============
set LOG=%~dp0/configure.log
::set QT_SKIP=-skip webengine -skip webkit
set QT_NOMAKE=-nomake examples -nomake tests -nomake tools -no-angle -no-openssl
set QT_ACCEPT_LICENSE=-opensource -confirm-license
set QT_PREFIX=-prefix %QT_OUTPUT_MAKE%
 
configure -release -static -static-runtime -opengl desktop -make libs %QT_ACCEPT_LICENSE% %QT_PREFIX% %QT_SKIP% %QT_NOMAKE%>>%LOG% 2>&1
 
:make
echo ============== Running make ==============
set LOG=%~dp0/make.log
mingw32-make -k -j%NUM_JOBS%>>%LOG% 2>&1
 
:install
echo ============== Running install ==============
set LOG=%~dp0/install.log
mingw32-make -k -j%NUM_JOBS% install>>%LOG% 2>&1


p.s. Для VS2015C появится в ближайшее время.
p.p.s Удачи

Добавлено через 9 часов 41 минуту
Собственно, скрипт сборки для Visual Studio Community 2015:
bat

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
:: Версия 1.0
@ECHO OFF
set QT_OUTPUT_MAKE=D:/dev/Qt/QtLibs/Qt5.5.0_vs2015_static_release_x32
set QT_SRC=D:/QtSrc
::  [url]www.python.org/downloads/[/url]
set PYTHON_BIN=C:/Python34
::  [url]http://strawberryperl.com/[/url]
set PERL_BIN=C:/Strawberry/perl/bin
::  [url]http://rubyinstaller.org/downloads/[/url]
set RUBY_BIN=C:/Ruby22/bin
 
set QT_QMAKE=%QT_QBASE%/qtbase/bin
set PATH=%PATH%;%QT_QMAKE%;%PYTHON_BIN%;%PERL_BIN%;%RUBY_BIN%
cd /D %QT_SRC%
 
echo 1) Configure (default)
echo 2) Make
echo 3) Install
set /p step=Enter step: 
if "%step%"=="1" goto configure
if "%step%"=="2" goto make
if "%step%"=="3" goto install
goto configure
 
:configure
echo ============== Running configure ==============
set LOG=%~dp0/configure.log
::set QT_SKIP=-skip webengine -skip webkit
set QT_NOMAKE=-nomake examples -nomake tests -nomake tools -no-angle -no-openssl
set QT_ACCEPT_LICENSE=-opensource -confirm-license
set QT_PREFIX=-prefix %QT_OUTPUT_MAKE%
configure -release -static -static-runtime -opengl desktop -make libs %QT_ACCEPT_LICENSE% %QT_PREFIX% %QT_SKIP% %QT_NOMAKE%>>%LOG% 2>&1
 
:make
echo ============== Running make ==============
set LOG=%~dp0/make.log
nmake -k>>%LOG% 2>&1
 
:install
echo ============== Running install ==============
set LOG=%~dp0/install.log
nmake -k install>>%LOG% 2>&1

Следующий набор статических библиотек получаю на выходе:
libs

Qt53DQuick.lib
Qt53DQuickRenderer.lib
Qt53DRenderer.lib
qtfreetype.lib
qtharfbuzzng.lib
qtmain.lib
qtpcre.lib
poly2tri.lib
Qt5AxBase.lib
Qt5AxContainer.lib
Qt5AxServer.lib
Qt5Bluetooth.lib
Qt5Bootstrap.lib
Qt5CLucene.lib
Qt5Concurrent.lib
Qt5Core.lib
Qt5Declarative.lib
Qt5Gui.lib
Qt5Help.lib
Qt5Location.lib
Qt5Multimedia.lib
Qt5MultimediaQuick_p.lib
Qt5MultimediaWidgets.lib
Qt5Network.lib
Qt5Nfc.lib
Qt5OpenGL.lib
Qt5OpenGLExtensions.lib
Qt5PlatformSupport.lib
Qt5Positioning.lib
Qt5PrintSupport.lib
Qt5Qml.lib
Qt5QmlDevTools.lib
Qt5Quick.lib
Qt5QuickParticles.lib
Qt5QuickTest.lib
Qt5QuickWidgets.lib
Qt5Script.lib
Qt5ScriptTools.lib
Qt5Sensors.lib
Qt5SerialPort.lib
Qt5Sql.lib
Qt5Svg.lib
Qt5Test.lib
Qt5UiTools.lib
Qt5WebChannel.lib
Qt5WebSockets.lib
Qt5Widgets.lib
Qt5WinExtras.lib
Qt5Xml.lib
Qt5XmlPatterns.lib
Qt53DCore.lib
Qt53DInput.lib

plugins

imageformats\qtiff.lib
imageformats\qtga.lib
imageformats\qmng.lib
imageformats\qjp2.lib
imageformats\qicns.lib
imageformats\qdds.lib
sensorgestures\qtsensorgestures_plugin.lib
sensorgestures\qtsensorgestures_shakeplugin.lib
sensors\qtsensors_generic.lib
geoservices\qtgeoservices_mapbox.lib
geoservices\qtgeoservices_osm.lib
geoservices\qtgeoservices_nokia.lib
position\qtposition_positionpoll.lib
mediaservice\wmfengine.lib
mediaservice\dsengine.lib
audio\qtaudio_windows.lib
mediaservice\qtmedia_audioengine.lib
playlistformats\qtmultimedia_m3u.lib
qmltooling\qmldbg_qtquick2.lib
qmltooling\qmldbg_tcp.lib
imageformats\qsvg.lib
iconengines\qsvgicon.lib
printsupport\windowsprintersupport.lib
generic\qtuiotouchplugin.lib
platforms\qwindows.lib
platforms\qoffscreen.lib
platforms\qminimal.lib
imageformats\qico.lib
bearer\qnativewifibearer.lib
bearer\qgenericbearer.lib
qml1tooling\qmldbg_tcp_qtdeclarative.lib
qml1tooling\qmldbg_inspector.lib
imageformats\qwebp.lib
imageformats\qwbmp.lib


p.s. Тут сборка работает (проверено) без патчей.
6
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,796
Записей в блоге: 17
21.07.2015, 22:21 #112
Понту собирать без ssl.
0
proninyaroslav
2 / 2 / 0
Регистрация: 29.01.2013
Сообщений: 40
26.07.2015, 11:34 #113
CriDos, Bmg113, а qml на ваших сборках работает в полной мере? Сейчас занимаюсь проектом на qml, ищу возможности статической линковки на Windows и OS X. На линуксе проблем с наличием самого Qt нет, но на Windows и OS X по умолчанию они не стоят, а заставлять пользователя устанавливать что-либо дополнительное выглядит странно. Поэтому решил использовать статическую линковку с Qt. На Windows размер библиотек получается а пределах 30-50 мб, а вот на OS X размер составляет 100-200 мб (при том, что сама среда разработки Qt весит на маке 10 гб). Для среднего приложения 200 мб библиотек это весьма странно. Вопрос: есть ли способ уменьшить размеры скомпилированного файла? Хотелось бы услышать советы от тех, кто постоянно пользуется Qt, как вы справляетесь с отсутствием самой Qt на многих системах?
0
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,796
Записей в блоге: 17
26.07.2015, 11:53 #114
Так на линукс вроде как бы тоже нужно ставить Qt и тоже "инсталятором".
0
proninyaroslav
2 / 2 / 0
Регистрация: 29.01.2013
Сообщений: 40
26.07.2015, 12:48 #115
Avazart, 1. он есть практически в каждом дистрибутиве; 2. если его нет, то можно установить с обычного репозитория или сам пакет с программой скачает все зависимости пакета.
0
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,796
Записей в блоге: 17
26.07.2015, 13:01 #116
Так вроде как в репах нет Qt5.
0
proninyaroslav
2 / 2 / 0
Регистрация: 29.01.2013
Сообщений: 40
26.07.2015, 13:18 #117
Avazart, в дебиане 5.3, убунта 5.2.1, арч 5.5, опенсуся 5.4, федора 5.4 и т.д.
1
Avazart
26.07.2015, 15:00
  #118

Не по теме:

А как пакет называется? Ибо раньше не было как я помню

0
proninyaroslav
26.07.2015, 17:34
  #119

Не по теме:

Avazart, смотря в каком дистрибутиве. На арче qt5-base, на убунте, дебиане и производных qt-default, на федораподобных qt5-qtbase и т.д

0
Avazart
26.07.2015, 18:05     Отучение Qt 5.2.0 от библиотек MinGW и Qt
  #120

Не по теме:

sudo apt-get install qt5-default
да есть на debian вижу.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2015, 18:05
Привет! Вот еще темы с ответами:

Отучение qt 5.0.1 от *.dll - C++ Qt
Вообщем не получается. Читал темы с пометкой ВАЖНО где приведены варианты не работает , линки которые там указаны битые. Я скачал Qt...

Ошибка с подключением библиотек iostream.h в MinGW - C++
Помогите разобраться. Не получается подключить библиотеки iostream.h. В среде MinGW 2.1 #include <iostream.h> #include <windows.h> ...

MinGW, при установке ошибка: unpacking mingw-get-0.6.2-mingw32-beta-20131004-1-bin.tar.xz - C (СИ)
Добрый день, форумчане! Недавно начал изучать Си, решил попрактиковаться. В качестве компилятора не знал какой выбрать (вообще не знаю,...

Может ли MinGW x64 компилить приложения x32? Или нужно для этого отдельно ещё MinGW х32 качать? - C++
Просто решил поиграться с CodeLite.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.07.2015, 18:05
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru