Форум программистов, компьютерный форум, киберфорум
8Observer8
Войти
Регистрация
Восстановить пароль

Статическая сборка Qt 5.15.2 (MinGW 8.1.0) для Windows 10. Сжатие exe до мин. размера с помощью upx

Запись от 8Observer8 размещена 14.11.2014 в 12:33. Обновил(-а) 8Observer8 06.06.2026 в 17:00
Показов 113866 Комментарии 51
Метки c++, qt

Содержание блога

Установка статического Qt с помощью mysys2 и pacman

Инструкция. Статическая сборка Qt 5.15.2 (MinGW 8.1.0) для Windows 10. Сжатие exe до мин. размера с помощью upx

Я заново собрал Qt 5.15.2 из этих исходников (архив весит 962 MB, а после разархивирования - 3.17 GB). В этот раз сконфигурировалось, собралось и установилось без каких-либо ошибок. Модули "multimedia" и "websockets" работают нормально, а в предыдущей сборке не работали. Поделюсь информацией с какими конфигурациями собирал, сколько заняло времени и сколько весит статический Qt.

Конфигурировал следующей командой. Эту команду нужно скопировать в командую строку в корне директории с исходниками. Я, на всякий случай, запускал CMD с правами администратора. Здесь не включены модули Qt3D и QML (см. конфигурацию далее с включёнными модулями Qt3D и QML):

configure -prefix "C:\Qt\Qt5.15.2_Static" -static -static-runtime -release -opensource -confirm-license -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -sql-odbc -sql-sqlite -nomake tools -nomake examples -nomake tests -no-angle -skip qt3d -skip qtcanvas3d -skip qtcanvas3d -skip qtdatavis3d -skip qtlocation -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip declarative -skip quickcontrols
Команда для сборки:

mingw32-make
Команда для установки, которая скопирует необходимые файлы в папку "C:\Qt\Qt5.15.2_Static"::

mingw32-make install
Время и занимаемое место на жёстком:
  • Конфигурирование - порядка 5-10 минут
  • Сборка заняла 4 часа. После сборки папка с исходниками стала весить 1.2 GB. Папку с исходниками нужно удалить после сборки
  • Установка заняла 20 минут. Папка "C:\Qt\Qt5.15.2_Static" весит 373 MB

Есть выполнить конфигурацию с включёнными модулями Qt3D и QML:

configure -prefix "C:\Qt\Qt5.15.2_Static" -static -static-runtime -release -opensource -confirm-license -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -sql-odbc -sql-sqlite -nomake tools -nomake examples -nomake tests -no-angle -skip qtwayland -skip qtwebchannel -skip qtwebengine
Время и занимаемое место на жёстком:
  • Конфигурирование - порядка 5-10 минут
  • Сборка заняла 10 с половиной часов. После сборки папка с исходниками стала весить 4.96 GB. Папку с исходниками нужно удалить после сборки
  • Установка заняла 45 минут. Папка "C:\Qt\Qt5.15.2_Static" весит 730 MB

Далее, после подключения в Qt Creator, собранного Qt, создаём проект, например: https://rextester.com/RJLN8376

main.cpp

C++ (Qt)
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
46
47
48
49
50
51
52
53
// Add this line to .pro:
// QT += multimedia
// win32: LIBS += -lopengl32
 
#ifdef _WIN32
#include <windows.h>
extern "C" __declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
extern "C" __declspec(dllexport) DWORD AmdPowerXpressRequestHighPerformance = 0x00000001;
#endif
 
#include <QtWidgets/QApplication>
#include <QtWidgets/QOpenGLWidget>
#include <QtMultimedia/QMediaPlayer>
#include <QtCore/QUrl>
 
class Window : public QOpenGLWidget
{
public:
 
    Window()
    {
        setWindowTitle("Music");
        resize(500, 500);
    }
 
private:
    QMediaPlayer _mediaPlayer;
 
    void initializeGL() override
    {
        glClearColor(0.5f, 0.5f, 0.5f, 1.0f);
        _mediaPlayer.setMedia(QUrl("qrc:/assets/audio/music.wav"));
        _mediaPlayer.play();
    }
 
    void paintGL() override
    {
        glClear(GL_COLOR_BUFFER_BIT);
    }
 
    void resizeGL(int w, int h) override
    {
        glViewport(0, 0, w, h);
    }
};
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Window w;
    w.show();
    return a.exec();
}


и сжимаем EXE с помощью UPX (см. далее). Этот пример включает в себя модули "multimedia" и "opengl" и весит 23.5 MB. Пример создаёт окно, красит его с серый цвет с помощью OpenGL и проигрывает музыкальный файл из ресурсов. Собираем пример в Release и сжимаем собранный Release с помощью UPX:

upx.exe --best --force MediaPlayer_Qt5Cpp.exe -o MediaPlayer.exe
Получается EXE весом 7.98 MB: MediaPlayer.zip


Инструкция. Статическая сборка Qt 5.4 (MinGW) для Win7. Сжатие exe до мин. размера с помощью upx

Перед тем как научиться собирать приложения в один exe необходимо собрать саму библиотеку Qt статически из исходников. На вашем компьютере будет две версии динамическая (которую вы установили) и статическая. Вы сможете переключаться между этими сборками из Qt Creator

Инструментарий:
- Версия Qt: Qt 5.4.0 for Windows 32-bit (MinGW 4.9.1, 852 MB)
- ОС Win7

Примечание. Предполагается, что у вас есть папка с исходниками Qt. Для того, чтобы она появилась нужно было на этапе установки поставить галочку "Source Components". Либо найти и скачать исходники Qt отдельно

- переходим в каталог "C:\Qt\Qt5.4.0\5.4\mingw491_32\mkspecs\w in32-g++" и создаём резервную копию файла "qmake.conf". Например, с именем "qmake.conf Copy"

- в файле "qmake.conf" и проводим следующие изменения:

QMAKE_LFLAGS += -static-libgcc -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
DEFINES += QT_STATIC_BUILD
Примечание. Эти значения я взял из скрипта "windows-build-qt-static.ps1" из этой инструкции: http://qt-project.org/wiki/How... dows-MinGW

- создаём резервную копию исходников Qt, то есть каталога: C:\Qt\Qt5.4.0\5.4\Src\

- отрываем терминал "Start" -> "All Programs" -> "Qt 5.4.0" -> "5.4" -> "MinGW 4.9 (32 bit)" -> "Qt 5.4.0 for Desktop (MinGW 4.9 32 bit)"

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

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

configure -static -platform win32-g++ -prefix "C:\Qt\Qt5.4.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
- ожидаем окончания конфигурирования, примерно, 10 мин. (время зависит от мощности компьютера)

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

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

Примечание. В конце построения вылезут следующие ошибки, но вы не обращайте на них внимания:

Кликните здесь для просмотра всего текста
Code
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
g++ -c -pipe -fno-keep-inline-dllexport -msse2 -mstackrealign -mfpmath=sse -O2 -
std=c++0x -fno-exceptions -frtti -Wall -Wextra -DUNICODE -DQT_NO_URL_CAST_FROM_S
TRING -DQT_NO_INTEGER_EVENT_COORDINATES -DQT_BUILD_QML_LIB -DQT_BUILDING_QT -D_C
RT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_
WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_D
ISABLE_DEPRECATED_BEFORE=0x040800 -DWTF_EXPORT_PRIVATE= -DJS_EXPORT_PRIVATE= -DW
TFReportAssertionFailure=qmlWTFReportAssertionFailure -DWTFReportBacktrace=qmlWT
FReportBacktrace -DWTFInvokeCrashHook=qmlWTFInvokeCrashHook -DNOMINMAX -DENABLE_
LLINT=0 -DENABLE_DFG_JIT=0 -DENABLE_DFG_JIT_UTILITY_METHODS=1 -DENABLE_JIT_CONST
ANT_BLINDING=0 -DBUILDING_QT__ -DWTF_USE_UDIS86=0 -DNDEBUG -DQT_NO_EXCEPTIONS -D
QT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I'../../include' -I'../../includ
e/QtQml' -I'../../include/QtQml/5.4.0' -I'../../include/QtQml/5.4.0/QtQml' -I'tm
p' -I'compiler' -I'.' -I'../3rdparty/masm/jit' -I'../3rdparty/masm/assembler' -I
'../3rdparty/masm/runtime' -I'../3rdparty/masm/wtf' -I'../3rdparty/masm/stubs' -
I'../3rdparty/masm/stubs/wtf' -I'../3rdparty/masm' -I'../3rdparty/masm/disassemb
ler' -I'../3rdparty/masm/disassembler/udis86' -I'jit' -I'.' -I'jsruntime' -I'.'
-I'../3rdparty/double-conversion' -I'debugger' -I'animations' -I'C:/Qt/Qt5.4.0/5
.4/Src/qtbase/include/QtCore/5.4.0' -I'C:/Qt/Qt5.4.0/5.4/Src/qtbase/include/QtCo
re/5.4.0/QtCore' -I'C:/Qt/Qt5.4.0/5.4/Src/qtbase/include' -I'C:/Qt/Qt5.4.0/5.4/S
rc/qtbase/include/QtNetwork' -I'C:/Qt/Qt5.4.0/5.4/Src/qtbase/include/QtCore' -I'
.moc/release' -I'C:/Qt/Qt5.4.0/5.4/Src/qtbase/mkspecs/win32-g++' -o .obj/release
/YarrJIT.o ../3rdparty/masm/yarr/YarrJIT.cpp
python C:/Qt/Qt5.4.0/5.4/Src/qtdeclarative/src/3rdparty/masm/create_regex_tables
 > RegExpJitTables.h
/c/cygwin64/bin/python: /c/cygwin64/bin/python: cannot execute binary file
Makefile.Release:1093: recipe for target 'RegExpJitTables.h' failed
mingw32-make[4]: *** [RegExpJitTables.h] Error 126
mingw32-make[4]: Leaving directory 'c:/Qt/Qt5.4.0/5.4/Src/qtdeclarative/src/qml'
 
Makefile:34: recipe for target 'release' failed
mingw32-make[3]: *** [release] Error 2
mingw32-make[3]: Leaving directory 'c:/Qt/Qt5.4.0/5.4/Src/qtdeclarative/src/qml'
 
Makefile:45: recipe for target 'sub-qml-make_first-ordered' failed
mingw32-make[2]: *** [sub-qml-make_first-ordered] Error 2
mingw32-make[2]: Leaving directory 'c:/Qt/Qt5.4.0/5.4/Src/qtdeclarative/src'
Makefile:41: recipe for target 'sub-src-make_first' failed
mingw32-make[1]: *** [sub-src-make_first] Error 2
mingw32-make[1]: Leaving directory 'c:/Qt/Qt5.4.0/5.4/Src/qtdeclarative'
makefile:217: recipe for target 'module-qtdeclarative-make_first' failed
mingw32-make: *** [module-qtdeclarative-make_first] Error 2
 
C:\Qt\Qt5.4.0\5.4\Src>


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

mingw32-make install
- ожидаем окончания копирования. Статическая сборка теперь будет храниться в папке C:\Qt\Qt5.4.0_Static

Примечание. В конце установки вылезут следующие ошибки, но вы не обращайте на них внимания:

Кликните здесь для просмотра всего текста
Code
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
g++ -Wl,--gc-sections -Wl,-s -Wl,-subsystem,console -o ../../bin/qml.exe .obj/re
lease/main.o .obj/release/qml_qml_plugin_import.o .obj/release/qml_plugin_import
.o .obj/release/qrc_qml.o .obj/release/moc_conf.o *-LC:/Qt/Qt5.4.0/5.4/Src/qtdec
larative/lib -LC:/Qt/Qt5.4.0/5.4/Src/qtbase/lib -lQt5Widgets -LC:/Qt/Qt5.4.0/5.4
/Src/qtdeclarative/plugins/qmltooling -lqmldbg_qtquick2 -lQt5Quick -lqmldbg_tcp
-lQt5Qml -LC:/Qt/Qt5.4.0/5.4/Src/qtbase/plugins/bearer -lqgenericbearer -lqnativ
ewifibearer -lQt5Network -ldnsapi -LC:/Qt/Qt5.4.0/5.4/Src/qtbase/plugins/platfor
ms -lqwindows -lwinspool -lshlwapi -lQt5PlatformSupport -LC:/Qt/Qt5.4.0/5.4/Src/
qtbase/plugins/imageformats -lqico -lQt5Gui -lcomdlg32 -loleaut32 -limm32 -lwinm
m -lglu32 -lopengl32 -lgdi32 -lqtharfbuzzng -lQt5Core -lole32 -luuid -lws2_32 -l
advapi32 -lshell32 -luser32 -lkernel32 -lmpr
C:/Qt/Qt5.4.0/5.4/Src/qtdeclarative/lib/libQt5Qml.a(YarrInterpreter.o):YarrInter
preter.cpp:(.text+0x622): undefined reference to `JSC::Yarr::wordcharCreate()'
C:/Qt/Qt5.4.0/5.4/Src/qtdeclarative/lib/libQt5Qml.a(YarrInterpreter.o):YarrInter
preter.cpp:(.text+0x693): undefined reference to `JSC::Yarr::newlineCreate()'
c:/Qt/Qt5.4.0/Tools/mingw491_32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../.
./i686-w64-mingw32/bin/ld.exe: C:/Qt/Qt5.4.0/5.4/Src/qtdeclarative/lib/libQt5Qml
.a(YarrInterpreter.o): bad reloc address 0x12 in section `.text$_ZN3WTF15BumpPoi
nterPool6createEj[__ZN3WTF15BumpPointerPool6createEj]'
collect2.exe: error: ld returned 1 exit status
Makefile.Release:86: recipe for target '../../bin/qml.exe' failed
mingw32-make[4]: *** [../../bin/qml.exe] Error 1
mingw32-make[4]: Leaving directory 'c:/Qt/Qt5.4.0/5.4/Src/qtdeclarative/tools/qm
l'
Makefile:44: recipe for target 'release-install' failed
mingw32-make[3]: *** [release-install] Error 2
mingw32-make[3]: Leaving directory 'c:/Qt/Qt5.4.0/5.4/Src/qtdeclarative/tools/qm
l'
Makefile:107: recipe for target 'sub-qml-install_subtargets' failed
mingw32-make[2]: *** [sub-qml-install_subtargets] Error 2
mingw32-make[2]: Leaving directory 'c:/Qt/Qt5.4.0/5.4/Src/qtdeclarative/tools'
Makefile:78: recipe for target 'sub-tools-install_subtargets' failed
mingw32-make[1]: *** [sub-tools-install_subtargets] Error 2
mingw32-make[1]: Leaving directory 'c:/Qt/Qt5.4.0/5.4/Src/qtdeclarative'
makefile:229: recipe for target 'module-qtdeclarative-install_subtargets' failed
 
mingw32-make: *** [module-qtdeclarative-install_subtargets] Error 2
 
C:\Qt\Qt5.4.0\5.4\Src>


- удаляем файл C:\Qt\Qt5.4.0\5.4\mingw491_32\mkspecs\wi n32-g++\qmake.conf и восстанавливаем резервный "qmake.conf"

- удаляем каталог C:\Qt\Qt5.4.0\5.4\Src и восстанавливаем резервный

Регистрируем сборку в Qt Creator статическую сборку. Для этого:
- запускаем QtCreator
- в меню нажимаем "Tools" -> нажимаем "Options"
- слева выбираем "Build & Run", а справа выбираем вкладку "Qt Vertions"
- нажимаем кнопку "Add..." и указываем путь до qmake.exe "C:\Qt\Qt5.4.0_Static\bin\qmake.exe"
- нажимаем кнопку "Apply"
- переходим на вкладку "Kits" и нажимаем кнопку "Add"
- в поле "Name" вводим имя Desktop Qt 5.4.0 Static MinGW 32 bit
- если поле "Debugger" пусто, то нажимаем кнопку "Manage..."
- нажимаем кнопку "Add", вводим название (например gdb) и указываем путь к отладчику "C:\Qt\Qt5.4.0\Tools\mingw49_32\bit\gdb. exe"
- нажимаем кнопку "Apply"
- возвращаемся на на вкладку "Kits"
- в выпадающем списке "Qt versions" выбираем "Desktop Qt 5.4.0 Static MinGW 32 bit"
- нажимаем кнопку "OK"

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

Для сборки статической версии приложения нужно:

- перед сборкой выбрать Release
- открыть файл проекта (*.pro) и добавить строку:

Code
1
QMAKE_LFLAGS += -static -static-libgcc
Примечание. При запуске exe из каталога, возможно, придётся добавить три dll:
- libgcc_s_dw2-1.dll
- libstdc++-6.dll
- libwinpthread-1.dll
Их можно добавить из каталога: C:\Qt\Qt5.4.0\5.4\mingw491_32\bin
В этом случае НЕ НУЖНО писать в pro файле: QMAKE_LFLAGS += -static -static-libgcc

Нажмите кнопку "Build" (или Ctrl+B) и вы видите, что полученный exe весит, как минимум 15 МБайт. Мы его можем сжать до 5.5 Мбайт с помощью программы upx:

upx.exe -9 --force -o ПолноеИмяНовогоФайлаEXE ПолноеИмяСтарогоФайлаExe
Примечание. Ещё лучше можно сжать с ключом --best

upx.exe --best --force -o ПолноеИмяНовогоФайлаEXE ПолноеИмяСтарогоФайлаExe
К примеру, мы собрали статически файл Boxes.exe (15 МБайт). Переименуем его в Boxes1.exe и выполняем команду:
D:\_soft\upx391w\upx391w\upx.exe -9 -o C:\Users\Ivan\GoogleDrive\Qt\Bullet\buil d-Boxes-Desktop_Qt_5_4_MinGW_32bit_Static-Release\release\Boxes.exe C:\Users\Ivan\GoogleDrive\Qt\Bullet\buil d-Boxes-Desktop_Qt_5_4_MinGW_32bit_Static-Release\release\Boxes1.exe
После этой команды будет создан Boxes.exe весом 5.5 МБайт


Прикрепил screenshot примера того, какие библиотеки и плагины нужны для распространения приложения с динамическими библиотеками с использованием модуля Qt3D для Qt 5.15.2
Миниатюры
Нажмите на изображение для увеличения
Название: Qt3D_DLLs.png
Просмотров: 946
Размер:	7.2 Кб
ID:	7435  
Метки c++, qt
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 51
Комментарии
  1. Старый комментарий
    Добавил примечание:

    Примечение. При запуске exe из каталога, возможно, придётся добавить три dll:
    - libgcc_s_dw2-1.dll
    - libstdc++-6.dll
    - libwinpthread-1.dll
    Их можно добавить из каталога: C:\Qt\Qt5.4.0\5.4\mingw491_32\bin
    В этом случае НЕ НУЖНО писать в pro файле: QMAKE_LFLAGS += -static -static-libgcc
    Запись от 8Observer8 размещена 22.04.2015 в 13:07 8Observer8 вне форума
  2. Старый комментарий
    Добавил примечание:

    Примечание. Ещё лучше можно сжать с ключом --best

    upx.exe --best -o ПолноеИмяНовогоФайлаEXE ПолноеИмяСтарогоФайлаExe
    Запись от 8Observer8 размещена 22.04.2015 в 13:10 8Observer8 вне форума
  3. Старый комментарий
    спасибо, очень помог!
    Запись от SnakeGod размещена 28.04.2015 в 17:18 SnakeGod вне форума
  4. Старый комментарий
    Цитата Сообщение от SnakeGod
    Сделал всё по инструкции, выходит ошибка: Unknown module(s) in QT: script
    Потому что модуля script нет в конфигурировании:

    configure -static -platform win32-g++ -prefix "C:\Qt\Qt5.4.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

    Возможно его можно подлючить, добавив ключ -script вот так: configure -static -platform -script win32-g++ ...

    А может по-другому ключ называется. Нужно ввести команду в консоле configure -help и поискать, какой ключ у этого модуля
    Запись от 8Observer8 размещена 28.04.2015 в 17:33 8Observer8 вне форума
  5. Старый комментарий
    Спасибо за статью, но необходима подсказка (google не помог). Ошибка следующая:

    после запуска конфигурирования (configure -static ...) появляется ошибка:
    minqw32-make: *** [arch.exe] Error 1
    Could not find output file 'arch.exe' or 'arch' in C:/Qt/Qt5.4.1/5.4/Src/qtbase/config.tests/arch : No such file or directory

    Иди в cd C:/Qt/Qt5.4.1/5.4/Src/qtbase/config.tests/arch
    пытаюсь выполнить mingw32-make, появляется ошибка:

    makefile:78: recipe for target 'arch.exe' failed
    minqw32-make: *** [arch.exe] Error 1

    Строки makefile:

    77: $(DESTDIR_TARGET): $(OBJECTS)
    78: $(LINKER) $(LFLAGS) -o $(DESTDIR_TARGET) $(OBJECTS) $(LIBS)

    Я думал, что проблема в версии qt, сначала пробовал 5.4.1, но в 5.4.0 тоже самое. ОС - Win 7 64 bit.
    Запись от Klafe размещена 24.05.2015 в 04:19 Klafe вне форума
  6. Старый комментарий
    Как ни странно, все получилось. Только на работе, дома пробовал на ноутбуке, на работе стационарный, все на нем скомпилировалось. Затем принес папку домой и все работает. Странно, операционки одинаковые.
    Запись от Klafe размещена 25.05.2015 в 13:36 Klafe вне форума
  7. Старый комментарий
    Все сделал по инструкции при сборки проекта такая ошибка:
    Unknown modele(s) in QT:serialport
    Что можно сделать?
    Запись от maxijack размещена 10.11.2015 в 15:19 maxijack вне форума
  8. Старый комментарий
    Цитата Сообщение от maxijack
    Все сделал по инструкции при сборки проекта такая ошибка:
    Unknown modele(s) in QT:serialport
    Что можно сделать?
    При конфигурировании (то есть в команде configure) перечисляются модули, которые будут собираться в статику. В данной инструкции нет подключения модуля serialport, поэтому при сборке приложения вывелось сообщение "неизвестный модуль serialport". Я не знаю, как включить модуль serialport при конфигурировании. Поищите в интернете. Возможно, нужно просто написать ключ -serialport в команде configure.
    Запись от 8Observer8 размещена 10.11.2015 в 15:48 8Observer8 вне форума
  9. Старый комментарий
    Цитата Сообщение от 8Observer8
    При конфигурировании (то есть в команде configure) перечисляются модули, которые будут собираться в статику. В данной инструкции нет подключения модуля serialport, поэтому при сборке приложения вывелось сообщение "неизвестный модуль serialport". Я не знаю, как включить модуль serialport при конфигурировании. Поищите в интернете. Возможно, нужно просто написать ключ -serialport в команде configure.
    -serialport не подходит
    в configure -help ничего похожего нет.
    А если я найду этот ключ то всю процедуру установки надо заново делать?
    Запись от maxijack размещена 11.11.2015 в 10:39 maxijack вне форума
  10. Старый комментарий
    Аватар для Avazart
    Цитата Сообщение от maxijack
    -serialport не подходит
    в configure -help ничего похожего нет.
    А если я найду этот ключ то всю процедуру установки надо заново делать?
    Да... чистить,пересобирать.
    Запись от Avazart размещена 11.11.2015 в 13:57 Avazart вне форума
  11. Старый комментарий
    Цитата Сообщение от maxijack
    -serialport не подходит
    в configure -help ничего похожего нет.
    А если я найду этот ключ то всю процедуру установки надо заново делать?
    Нужно сначала найти, как люди подключают serialport при конфигурировании. И да, нужно конфигурировать и заново компилировать Qt. Возможно, что нельзя подключить и нужно отдельно собрать модуль serialport и подключать статические библиотеки к Qt во время сборки приложения. Это только мои догадки. Я с serialport в статику не собирал. Ищите в интернете, как это сделали другие.
    Запись от 8Observer8 размещена 11.11.2015 в 14:01 8Observer8 вне форума
  12. Старый комментарий
    Кстати, вместо команды "очистить" лучше иметь архив с исходниками Qt. Допустим, нужно пересобрать, тогда лучше просто удалить старую сборку и извлечь из архива новые исходники, чем ждать, когда пройдёт очистка. Тем более, очистка проходит не до конца.
    Запись от 8Observer8 размещена 11.11.2015 в 14:08 8Observer8 вне форума
  13. Старый комментарий
    Как вызвать команду очистки?
    Запись от maxijack размещена 11.11.2015 в 14:54 maxijack вне форума
  14. Старый комментарий
    А вы не могли бы добавить в сборку поддержку OpenSSL?
    Запись от Dr.Xank размещена 02.12.2015 в 22:03 Dr.Xank вне форума
  15. Старый комментарий
    Очень хорошая статья. Большое спасибо за труд. Помогло.
    Запись от nick_f1982 размещена 29.04.2016 в 06:14 nick_f1982 вне форума
  16. Старый комментарий
    Аватар для TanaTiX
    - копируем файлы в каталог установки (каталог установки мы указали на этапе конфигурирования C:\Qt\Qt5.4.0_Static), для этого вводим команду и нажимаем "Enter":

    Цитата:
    Code
    1
    
    mingw32-make install
    - ожидаем окончания копирования. Статическая сборка теперь будет храниться в папке C:\Qt\Qt5.4.0_Static
    Папка Qt5.4.0_Static создается автоматически при запуске указанной команды или ее вручную нужно создать и продублировать туда содержимое C:\Qt\Qt5.4.0? Имеет значение откуда в консоли запускать эту команду?
    Запись от TanaTiX размещена 15.11.2017 в 15:51 TanaTiX вне форума
  17. Старый комментарий
    Цитата Сообщение от TanaTiX
    Папка Qt5.4.0_Static создается автоматически при запуске указанной команды или ее вручную нужно создать и продублировать туда содержимое C:\Qt\Qt5.4.0? Имеет значение откуда в консоли запускать эту команду?
    Создаётся автоматически, потому что этот путь "C:\Qt\Qt5.4.0_Static" указывается на этапе конфигурирования (когда вводится configure с ключами). Содержимое C:\Qt\Qt5.4.0 не нужно дублировать, все необходимые файлы скопируются сами по указанному пути: "C:\Qt\Qt5.4.0_Static". Нужно отдельно скачать исходники Qt и на всякий случай оставить копию исходников, чтобы в случае неудачи (или при желании добавить новые модули) можно было просто удалить папку и повторить заново: конфигурирование -> компилирование. Не уверен, что эта инструкция актуальна для нового Qt, но для 5.4.0 должна быть актуальна. Запускать команду конфигурирования (configure), а потом компиляцию (mingw32-make) нужно из папки с исходниками Qt, там где лежит makefile, в моём случае это было: C:\Qt\Qt5.4.0\5.4\Src\
    Запись от 8Observer8 размещена 15.11.2017 в 17:30 8Observer8 вне форума
  18. Старый комментарий
    Аватар для TanaTiX
    Цитата Сообщение от 8Observer8
    Создаётся автоматически, потому что этот путь "C:\Qt\Qt5.4.0_Static" указывается на этапе конфигурирования (когда вводится configure с ключами). Содержимое C:\Qt\Qt5.4.0 не нужно дублировать, все необходимые файлы скопируются сами по указанному пути: "C:\Qt\Qt5.4.0_Static". Нужно отдельно скачать исходники Qt и на всякий случай оставить копию исходников, чтобы в случае неудачи (или при желании добавить довые модули) можно было просто удалить папку и повторить заново: конфигурирование -> компилирование. Не уверен, что эта инструкция актуальна для нового Qt, но для 5.4.0 должна быть актуальна. Запускать команду конфигурирования (configure), а потом компиляцию (mingw32-make) нужно из папки с исходниками Qt, там где лежит makefile, в моём случае это было: C:\Qt\Qt5.4.0\5.4\Src\
    После выполнения команды mingw32-make папка Qt*_Static отсутствует. Использую версию 5.6.3 (win32). Это решаемо?
    Запись от TanaTiX размещена 15.11.2017 в 20:12 TanaTiX вне форума
  19. Старый комментарий
    Цитата Сообщение от TanaTiX
    После выполнения команды mingw32-make папка Qt*_Static отсутствует. Использую версию 5.6.3 (win32). Это решаемо?
    Я когда написал эту инструкцию, то специально по ней внимательно сделал, такой ошибки не было. Возможно в версии 5.6, что-то изменили. Я нашёл официальную инструкцию Building a static Qt for Windows using MinGW. Оказывается написали специальный скрипт windows-build-qt-static.ps1 Нужно, чтобы была установлена программа 7-Zip. Как там написано нужно просто скачать скрипт, кликнуть по нему правой кнопкой мыши и выбрать "Run with PowerShell". Скрипт сам скачает исходники, распакует их и произведёт сборку в папку "C:\Qt\Static". Попробуйте и напишите получилось ли.
    Запись от 8Observer8 размещена 15.11.2017 в 20:54 8Observer8 вне форума
  20. Старый комментарий
    Аватар для TanaTiX
    Цитата Сообщение от 8Observer8
    Я когда написал эту инструкцию...
    Спасибо. Попробую, но уже не сегодня, предполагаю, что времени на это уйдет не мало, а уже поздновато. По результатам отпишусь.
    Запись от TanaTiX размещена 15.11.2017 в 21:15 TanaTiX вне форума
 
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru