Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.1 - Qt Creator : 4.4.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

OpenSSL Qt 5.9.1 Static

////////////Prè requis/////////////

Tout d'abord, attention à la légalité de ce que vous faites;). Il y a des contrats de licence.
Les « » sont les infos à mettre à jour, elles ne sont pas destinées à rester. Même avec Qt 5.9.1 il faut les enlever.
Télécharger et installer Qt SEULEMENT AVEC LES SOURCES ET MINGW !!! j’insiste.
L’installer dans le repertoire Qt par default.
Aller dans le repertoire C:/QT/«5.9.1» et créer un répertoire nommé Static.
Télécharger une version static d’openssl ou la générer vous même :
http://www.wittfella.com/openssl
Déposer les libs dans le répertoires : C:\OpenSSL-Win32\bin
Déposer les includes dans le répertoires : C:\OpenSSL-Win32\include (le répertoire openssl doit être placé dedans du coup).

////////////Compilations/////////////
@echo off
rem ====================CONFIGURE BEFORE RUN SCRIPT!!======================
set QtSrcDir=%CD%\Src
set QtStaticDir=C:\Qt\Static
set MingwDir=C:\Qt\Tools\mingw530_32
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 -debug-and-release -platform win32-g++ -prefix %QtStaticDir% -I "C:\\OpenSSL-Win32\\include" -L "C:\\OpenSSL-Win32\\lib" -opensource -confirm-license -c++std c++14 -nomake examples -skip qtdoc -skip wayland -skip purchasing -skip serialbus -skip qtserialport -skip script -skip scxml -skip speech -skip location -no-opengl -no-angle -qt-zlib -qt-pcre -qt-libpng -no-libjpeg -qt-freetype"

if ERRORLEVEL 1 goto :error
mingw32-make -r -k -j4

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

set FILE_TO_PATCH=%QtStaticDir%\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%

Copier ce script et le mettre dans un fichier bat.bat par exemple sur le bureau.
Il est aussi en PJ.
Adapter ce script (options et «5.9.1» par exemple). (ATTENTION, LA "MOINDRE" MODIF ENTRAINE CHEZ MOI DES ERREURS (mais c'est chez moi)).
Aller dans le menu démarrer \Qt\«5.9.1»\mingw«53_32» (lancer la console)
Taper cd.. puis cd Static
Glisser déposer bat.bat (normalement sur le bureau) directement dans la fenêtre cmd (oui oui)
Lancer le script (clique sur la fenêtre puis entrer)

////////////Le compilateur statique/////////////

Si tout est ok, 3 heures après, reste à ajouter le compilateur static :
Ouvrir le QtCreator/Outils/options/Qt Versions/Ajouter :
C:\Qt\5.9.1\Static\qtbase\bin\qmake.exe
Donner « un nom 1»
Appliquer
Puis, au même endroit onglet Kit :
Ajouter // Donner « un nom 2» // Ajouter un compilateur c++ // et dans version de Qt choisir le « un nom 1»
Appliquer

////////////Fin/////////////

Merci à @stephane78
Le script initiale n'est pas de moi :
http://wohlsoft.ru/pgewiki/Building_static_Qt_5
et à http://www.wittfella.com/openssl

Je vais relire pour corrections mais n'hésitez pas !!!!!

Réponses

  • 14 Jul modifié
    5.9.0
    @echo off
    rem ====================CONFIGURE BEFORE RUN SCRIPT!!======================
    set QtSrcDir=%CD%\Src
    set QtStaticDir=C:\Qt\Static
    set MingwDir=C:\Qt\Tools\mingw530_32
    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 -release -platform win32-g++ -prefix %QtStaticDir% -I "C:\\OpenSSL-Win32\\include" -L "C:\\OpenSSL-Win32\\lib" -opensource -confirm-license -c++std c++14 -nomake examples -skip qtdoc -skip wayland -skip purchasing -skip serialbus -skip serialbus -skip script -skip scxml -skip speech -skip location -no-opengl -no-angle -qt-zlib -qt-pcre -qt-libpng -no-libjpeg -qt-freetype"

    if ERRORLEVEL 1 goto :error
    mingw32-make -r -k -j4

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

    set FILE_TO_PATCH=%QtStaticDir%\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%
  • 26 Jul modifié
    J'ai oublié de dire qu'il fallait modifier AVANT la compilation le fichier le fichier :

    C:\Qt\5.9.1\"qt-everywhere-opensource-src-5.9.1"\qtbase\mkspecs\win32-g++\qmake.conf

    QMAKE_LFLAGS += -static -static-libgcc
    QMAKE_CFLAGS_RELEASE -= -O2
    QMAKE_CFLAGS_RELEASE += -Os -momit-leaf-frame-pointer
    DEFINES += QT_STATIC_BUILD


    Le copier coller n'importe où semble faire l'affaire.
Connectez-vous ou Inscrivez-vous pour répondre.