Juste un article pour aider ces gars qui essaient de faire ça, car je n'ai pas de blog.
Cela fonctionne également pour Linux. N'hésitez pas à le modifier et à l'améliorer.
Remarque: Il y a aussi un autre article que j'ai écrit à compiler à partir de la source GIT ici avec un script automatisé sous Windows. Vous pouvez le modifier pour Linux comme la différence est indiquée dans ce post.
Cet article est continuellement mis à jour. Si cela vous aide, veuillez lui donner un "coup de pouce" afin que je sache que cela aide les gens et n'est pas inutile.
Si vous avez des commentaires ou si vous avez trouvé des fautes de frappe, faites-le moi savoir afin que je puisse les corriger.
Tout d'abord, peu importe que vous souhaitiez compiler une version 32 ou 64 bits. La seule différence est le raccourci d'invite de commande que vous devez choisir dans Visual Studio, qui initialisera différentes variables d'environnement.
Commençons par ceci:
Téléchargez et installez Perl: Lien de téléchargement
Téléchargez et installez Python: Lien de téléchargement
Téléchargez et installez Windows SDK (probablement pas nécessaire, mais recommandé) J'utilise Windows 8, c'est donc la version J'ai utilisé: Lien de téléchargement , Sinon, trouvez la version appropriée pour votre Windows.
Téléchargez et installez DirectX SDK (probablement nécessaire si vous voulez compiler avec OpenGL ) Lien de téléchargement
Téléchargez et extrayez jom dans un dossier (non nécessaire pour linux) ( jom = est un outil pour compiler des choses avec VS en parallèle, il existe un moyen de le faire avec nmake, mais je ne le connais pas) Lien de téléchargement
Téléchargez Qt Opensource, et extrayez-le, dites à C:\Qt\Qt5.6
, maintenant le dossier qtbase
se trouve dans C:\Qt\Qt5.6\qtbase
.
Uniquement pour Windows: VOULEZ-VOUS VRAIMENT TOTALEMENT STATIQUE?
Habituellement, même si vous choisissez que la compilation soit statique, le compilateur lui-même ne fusionnera toujours pas ses bibliothèques statiquement. Si vous voulez que votre source compilée soit entièrement statique par rapport au compilateur (Visual Studio), vous devez faire ce Tweak dans les fichiers QMAKE de Qt.
Accédez au fichier (à partir de votre répertoire source Qt), pour les versions supérieures à 2012, utilisez simplement la bonne version partout (comme win32-msvc2015) :
une. Pour VS2012: qtbase\mkspecs\win32-msvc2012\qmake.conf
b. Pour VS2010: qtbase\mkspecs\win32-msvc2010\qmake.conf
c. Pour Qt 5.5.0 et versions ultérieures (avec n'importe quelle version VS): qtbase\mkspecs\common\msvc-desktop.conf
et éditez les lignes suivantes
QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MDd
à
QMAKE_CFLAGS_RELEASE = -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MTd
Remarque: Qt 5.6+ a un paramètre de configuration -static-runtime
qui fera cela pour vous. Vous n'aurez peut-être plus besoin de le faire manuellement pour les nouvelles versions de Qt.
Démarrez le terminal sous linux ou sous Windows, démarrez les terminaux de Visual Studio (qui ont les variables d'environnement correctes définies, ou utilisez vcvarsall.bat ). Pour démarrer l'invite de commandes et le laisser faire automatiquement pour vous, accédez à Démarrer, Tous les programmes:
Pour les versions Windows antérieures à 8: Recherchez le dossier Microsoft Visual Studio 201x et lancez l'invite de commande (x86 pour 32 bits ou x64 pour 64 bits).
Pour Windows 8: allez à Démarrer, tapez "cmd" et toutes les versions disponibles pour l'invite de commande s'afficheront. Choisissez la version de Visual Studio appropriée (x86 pour 32 bits ou x64 pour 64 bits).
Voici une capture d'écran de son apparence. Tenez toujours à sélectionner "Native" s'il existe.
9.
Pour VS2012: Exécutez les commandes suivantes pour VS2012
set QMAKESPEC=win32-msvc2012
set QTDIR=C:\Qt\Qt5.7\qtbase
set PATH=C:\Qt\Qt5.7\qtbase\bin;%PATH%
Remarque: La définition de la variable d'environnement QMAKESPEC
est considérée comme incorrecte pour les versions Qt 5.8+. Ne le faites pas pour les nouvelles versions.
Pour la liaison dynamique (nécessite 8 Go)
configure -debug-and-release -opensource -platform win32-msvc2012 -opengl desktop
Pour une liaison dynamique sans exemple (nécessite 2 Go)
configure -debug-and-release -opensource -platform win32-msvc2012 -opengl desktop -nomake examples -nomake tests
Now the last command depends on what you want to compile. Just type configure -help and see what the available command-line parameters are.
Pour la liaison statique (nécessite 70 Go, oui c'est fou, il est plus raisonnable de ne pas faire d'exemples et de démos).
configure -debug-and-release -opensource -platform win32-msvc2012 -opengl desktop -static
Pour une liaison statique sans exemple (nécessite 4 Go, est plus logique).
configure -debug-and-release -opensource -platform win32-msvc2012 -opengl desktop -static -nomake examples -nomake tests
Maintenant, cela prendra une minute ou deux, puis utilisez jom comme suit (en supposant qu'il soit extrait dans C:\Qt\jom):
C:\Qt\jom\jom.exe -j 50
50 représente le nombre de cœurs que vous souhaitez utiliser. J'utilise 50 parce que j'ai 8 threads et utiliser seulement 8 n'occupera pas tous les cœurs complètement, donc plus c'est mieux, mais ne soyez pas trop gourmand car cela pourrait rendre votre système non réactif.
Pour VS2010: Exécutez les commandes suivantes pour VS2010
set QMAKESPEC=win32-msvc2010
set QTDIR=C:\Qt\Qt5.7\qtbase
set PATH=C:\Qt\Qt5.7\qtbase\bin;%PATH%
Remarque: La définition de la variable d'environnement QMAKESPEC
est considérée comme incorrecte pour les versions Qt 5.8+. Ne le faites pas pour les nouvelles versions. Pour la liaison dynamique (nécessite 8 Go)
configure -debug-and-release -opensource -platform win32-msvc2010 -opengl desktop
Pour une liaison dynamique sans exemple (nécessite 2 Go)
configure -debug-and-release -opensource -platform win32-msvc2010 -opengl desktop -nomake examples -nomake tests
La dernière commande dépend de ce que vous souhaitez compiler. Tapez simplement configure -help et voyez quels sont les paramètres de ligne de commande disponibles. Pour la liaison statique (nécessite 70 Go, oui c'est fou, il est plus raisonnable de ne pas faire d'exemples et de démos).
configure -debug-and-release -opensource -platform win32-msvc2010 -opengl desktop -static
Pour une liaison statique sans exemple (nécessite 4 Go, est plus logique).
configure -debug-and-release -opensource -platform win32-msvc2010 -opengl desktop -static -nomake examples -nomake tests
Maintenant, cela prendra une minute ou deux, puis utilisez jom comme suit (en supposant qu'il soit extrait dans C:\Qt\jom):
C:\Qt\jom\jom.exe -j 50
50 représente le nombre de cœurs que vous souhaitez utiliser. J'utilise 50 parce que j'ai 8 threads et utiliser seulement 8 n'occupera pas tous les cœurs complètement, donc plus c'est mieux, mais ne soyez pas trop gourmand car cela pourrait rendre votre système non réactif.
Il y a une petite différence pour Linux sur Windows. Il est recommandé sous Linux de installer après la compilation. Honnêtement, c'est la seule façon dont cela fonctionne pour moi sans problème.
Exécutez les commandes suivantes pour Linux. N'oubliez pas de remplacer les chemins par les bons chemins de votre source Qt
export QMAKESPEC=linux-g++
export QTDIR=/home/username/Qt5.7/qtbase
export PATH=/home/username/Qt5.7/qtbase/bin:$PATH
Remarque: La définition de la variable d'environnement QMAKESPEC
est considérée comme incorrecte pour les versions Qt 5.8+. Ne le faites pas pour les nouvelles versions.
Supposons que vous souhaitiez installer la source compilée dans le répertoire /home/username/Qt5.7-install
. Dans ce cas, ajoutez ce qui suit à any des commandes de configuration ci-dessous:
-prefix /home/username/Qt5.7-install
Avertissement : NE PAS installer dans le même répertoire source. C'est tout simplement faux!
Si -prefix
n'est pas défini, le chemin par défaut sera choisi, qui est /usr/local/
J'imagine. Je n'aime rien installer en utilisant root. Je préfère toujours installer dans mon dossier utilisateur, afin que la réversibilité et les mises à niveau ne soient pas un problème.
Les différentes commandes configure
possibles sont différentes selon ce que vous voulez faire.
Pour la liaison dynamique (nécessite 8 Go)
./configure -debug-and-release -opensource -platform linux-g++ -opengl desktop
Pour une liaison dynamique sans exemple (nécessite 2 Go)
./configure -debug-and-release -opensource -platform linux-g++ -opengl desktop -nomake examples -nomake tests
Maintenant, la dernière commande dépend de ce que vous voulez compiler. Tapez simplement ./configure -help
et voyez quels sont les paramètres de ligne de commande disponibles.
Pour la liaison statique (nécessite 70 Go, oui c'est fou, il est plus raisonnable de ne pas faire d'exemples et de tests).
./configure -debug-and-release -opensource -platform linux-g++ -opengl desktop -static
Pour une liaison statique sans exemple (nécessite 4 Go, est plus logique).
./configure -debug-and-release -opensource -platform linux-g++ -opengl desktop -static -nomake examples -nomake tests
Une fois la création terminée, exécutez la commande make
make -j 50
50 représente le nombre de cœurs que vous souhaitez utiliser. J'utilise 50 parce que j'ai 8 threads et utiliser seulement 8 n'occupera pas tous les cœurs complètement, donc plus c'est mieux, mais ne soyez pas trop gourmand car cela pourrait rendre votre système non réactif.
Attendez 2+ heures jusqu'à ce que la compilation soit terminée.
Nettoyer! Vous pouvez économiser beaucoup d'espace en utilisant cette commande pour Windows: C:\Qt\jom\jom.exe clean
Et cette commande pour linux: make clean
Vous pouvez réduire la taille de votre dossier compilé de 8 Go à 2,5 Go (pour la liaison dynamique) et de 70 Go à 35 Go (pour la liaison statique).
Pour utiliser cette version compilée dans Qt Creator:
Cliquez sur "Ajouter" et sélectionnez qmake dans le dossier où se trouve votre bac dans qtbase, donc d'en haut:
C:\Qt\Qt5.7\qtbase\bin\qmake.exe
(ou pour Linux, choisissez le chemin où vous avez installé la source Qt compilée, qui est équivalent à /home/username/Qt5.7-install/qtbase/bin/qmake
dans ce didacticiel)
Maintenant, ouvrez simplement un projet et vous le trouverez en vous demandant de choisir le kit que vous avez ajouté.
Prendre plaisir :)