compilación MinGW-W64 Qt5.14.1 (incluyendo la versión compilada estáticamente) Miscelánea

(Volver Build adelante y hacia atrás alrededor de 10 veces ......)
Referencias: https: //zhuanlan.zhihu.com/p/40271922

Este artículo sólo se utiliza para registrar los detalles del compilador, y el propósito único compilador es generar MingGW-W64 biblioteca Qt disponibles, no la búsqueda de la mayor cantidad biblioteca del compilador, hay garantía de que se puede utilizar en otras máquinas

Ver el final del guión


versión de MinGW-W64 de x86_64-8.1.0-POSIX-sjlj-rt_v6-rev0, pero poco impacto en esta versión

Debido a que el próximo ActivePerl más difícil, así que use un StrawberryPerl (este último es más espacio)

Se llevó inicialmente 5.12.4, pero el error se produce cuando se compila multimedia, a continuación, encontrar la línea correspondiente fallo , y les dijo: sólo para ser reparado en 5.12.5, 5.12, simplemente abandonados, elegida la más alta versión 5.14.1

Más tarde se produce el error del compilador tiempo Qt3d y todavía olla -no-OpenGL , puede omitir la mayoría de las bibliotecas implicadas en la elaboración

Se dice que mientras no QtDoc no necesita instalar LLVM, pero antes de que el equipo haya sido instalado, por lo que no existe ninguna prueba

Según los datos recopilados versión compilada de forma estática Qt, pero los archivos resultantes son todavía incapaces de funcionar de forma independiente. Script para generar una versión estática de Qt compilado por cheque todavía está en uso -shared, -static se debe cambiar

Después de generar la herramienta de apertura creador → → → opción Kits Qt, sólo tiene que añadir dos Qt generado Entre las versiones QT, y la configuración correspondiente en el kit de construcción (Kit) que pueden ser utilizados para compilar

La última generación de librerías de enlace dinámico representó 10G, biblioteca estática enlace únicamente 501MB, y el mismo programa (utilizando el QtGUI solamente) Dynamic Link solamente 26KB, y enlazado estáticamente, necesita 18 MB


guión del uso final de lotes (build.bat) de la siguiente
versión compilada estáticamente:

@echo off
rem ====================CONFIGURE BEFORE RUN SCRIPT!!======================
set QtSrcDir=%CD%
set QtPrefixDir=C:\Qt\Qt5.14.1\5.14.1\mingw-w64_810-static
set MingwDir=E:\mingw-w64\x86_64-8.1.0-posix-sjlj-rt_v6-rev0\mingw64
set BuildType=-release
set QtSPEC=win32-g++
set LANG = en
rem =======================================================================

PATH = %MingwDir%\bin;%MingwDir%\opt\bin;%SystemRoot%\system32;%SystemRoot%

set FILE_TO_PATCH=%QtSrcDir%\qtbase\mkspecs\win32-g++\qmake.conf
echo %FILE_TO_PATCH%
if exist %FILE_TO_PATCH%.patched goto skipPatch
type %FILE_TO_PATCH%>%FILE_TO_PATCH%.patched
echo.>>%FILE_TO_PATCH%
echo QMAKE_LFLAGS += -static -static-libgcc>>%FILE_TO_PATCH%
echo QMAKE_CFLAGS_RELEASE -= -O2>>%FILE_TO_PATCH%
echo QMAKE_CFLAGS_RELEASE += -Os -momit-leaf-frame-pointer>>%FILE_TO_PATCH%
echo DEFINES += QT_STATIC_BUILD>>%FILE_TO_PATCH%
:skipPatch

set QT_INSTALL_PREFIX = %QtStaticDir%
set OldDir=%CD%
cd %QtSrcDir%

cmd /C "configure.bat -static %BuildType% -platform %QtSPEC% -prefix %QtPrefixDir% -opensource -confirm-license -c++std c++14 -nomake examples -skip wayland -skip 3d -skip purchasing -skip scxml -skip speech -skip webengine -skip androidextras -skip gamepad -skip virtualkeyboard -skip datavis3d -skip macextras -skip networkauth -skip quick3d -skip sensors -skip declarative -skip lottie -skip webglplugin -skip charts -skip doc -skip script -skip location -no-opengl -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -no-openssl"
if ERRORLEVEL 1 goto :error

mingw32-make -r -k -s -j8
if ERRORLEVEL 1 goto :error

mingw32-make -k install
if ERRORLEVEL 1 goto :error

set FILE_TO_PATCH=%QtPrefixDir%\mkspecs\win32-g++\qmake.conf
echo.>>%FILE_TO_PATCH%
echo CONFIG += static>>%FILE_TO_PATCH%

echo ============BUILT!============
goto exitX
:error
echo ============ERROR!============
:exitX
pause
cd %OldDir%

edición de la compilación dinámica:

@echo off
rem ====================CONFIGURE BEFORE RUN SCRIPT!!======================
set QtSrcDir=%CD%
set QtPrefixDir=C:\Qt\Qt5.14.1\5.14.1\mingw-w64_810
set MingwDir=E:\mingw-w64\x86_64-8.1.0-posix-sjlj-rt_v6-rev0\mingw64
set BuildType=-debug-and-release
set QtSPEC=win32-g++
set LANG = en
rem =======================================================================

PATH = %MingwDir%\bin;%MingwDir%\opt\bin;%SystemRoot%\system32;%SystemRoot%

set QT_INSTALL_PREFIX = %QtStaticDir%
set OldDir=%CD%
cd %QtSrcDir%

cmd /C "configure.bat -shared %BuildType% -platform %QtSPEC% -prefix %QtPrefixDir% -opensource -confirm-license -c++std c++14 -nomake examples -skip wayland -skip 3d -skip purchasing -skip scxml -skip speech -skip webengine -skip androidextras -skip gamepad -skip virtualkeyboard -skip datavis3d -skip macextras -skip networkauth -skip quick3d -skip sensors -skip declarative -skip lottie -skip webglplugin -skip charts -skip doc -skip script -skip location -no-opengl -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -no-openssl"
if ERRORLEVEL 1 goto :error

mingw32-make -r -k -s -j8
if ERRORLEVEL 1 goto :error

mingw32-make -k install
if ERRORLEVEL 1 goto :error

echo ============BUILT!============
goto exitX
:error
echo ============ERROR!============
:exitX
pause
cd %OldDir%

03/12/2020

Supongo que te gusta

Origin www.cnblogs.com/wh201906/p/12466774.html
Recomendado
Clasificación