Cette méthode a été testée pour fonctionner sur Visual Studio 2013. Des binaires préconstruits pour Visual Studio 2012 et 2013 sont disponibles. aquí y compris les versions OpenGL.
Étape 1 : La configuration
-
Téléchargez et installez RapidEE aquí . RapidEE est un éditeur de variables d'environnement Windows. Il est extrêmement utile pour la suite de ce processus (et de manière générale).
-
Installez le SDK DirectX 11. Il fait maintenant partie du SDK de Windows 8, vous devez donc d'abord installer le SDK DirectX 10, que vous pouvez obtenir à l'adresse suivante aquí (mais voir l'avertissement dans la phrase suivante). Si le Visual C++ 2010 Redistributable Package est installé, et c'est probablement le cas (il est automatiquement installé avec VS 2010), suivez les étapes suivantes aquí pour aider à l'installation de DirectX 10. Une fois le SDK DirectX 10 installé, téléchargez et installez le SDK Windows 8. aquí qui contient l'interface DirectX 11 SDK. Oui, c'est pénible, mais si vous ne savez pas que vous avez le SDK DirectX 11, la construction de Qt échouera. .
-
Installer Python pour Windows (j'ai entendu parler de 2.6+, je travaille avec 3.3) à partir de Python.org o Anaconda Python .
-
Installer Perl pour Windows à partir de ActiveState .
Étape 2 : Gitting (et le bâtiment) Qt5 (oui, cela signifie que Git )
-
Suivez les Guide d'installation pour Windows sur le site web de qt-project.
Résumé
Pour résumer les détails du lien ci-dessus et des notes suivantes (VEUILLEZ VOIR LES NOTES SUIVANTES si vous avez des erreurs ; elles peuvent être répondues) :
-
Désinstallez Avast (si vous l'avez installé) pour éviter les erreurs de construction. Oui, cela signifie littéralement désinstaller il. Supprimez-le à 100% de votre système. Désactivation de il ne fonctionnera pas . Voir les notes détaillées ci-dessous.
-
Note pour les premières étapes : NE PAS utiliser SmartGit pour la première git
pull, ci-dessous (à moins que vous ne sachiez vraiment ce que vous faites), car les paramètres par défaut de SmartGit vont tirer tout et ce n'est pas ce que vous voulez.
-
Git pour Windows doit être installé.
-
Décidez où vous voulez mettre le Qt
l'installation, et cd
dans le répertoire qui contiendra la nouvelle installation à partir de n'importe quelle fenêtre d'invite de commande. (Parce que le processus est si fragile et sujet aux erreurs, je le mets personnellement directement dans C:
mais ce n'est probablement pas nécessaire).
-
Depuis le répertoire ci-dessus, exécutez :
git clone git://gitorious.org/qt/qt5.git qt5
C'est rapide. Une fois terminé, vous devriez être sur la branche 'stable', mais vous pouvez toujours exécuter git checkout stable
après cd
dans la nouvelle qt5
juste pour être sûr. Utilisation de git checkout 5.4.1
est confirmé pour fonctionner avec VS2013 64-bit.
-
Fermez la fenêtre de l'invite de commande actuelle (s'il ne s'agit pas d'une fenêtre d'invite de commande Visual Studio) avant de passer à l'étape suivante. Ceci afin de s'assurer que vous utilisez la fenêtre d'invite de commande de Visual Studio dans les étapes suivantes.
-
Ensuite, lancez l'invite de commande VS Tools 32 bits (x86) ou 64 bits (selon que vous construisez Qt5 en 32 ou 64 bits). Pour y accéder, vous devez le trouver par le menu Démarrer - allez à Program Files
-> [Microsoft] Visual Studio 2012/2013
-> Visual Studio Tools
et vous verrez qu'il y figure avec un nom amusant ; le nom devrait inclure la phrase suivante Native Tools
; la version 32 bits aura x86
dans le nom et la version 64-bit aura x64
dans le nom.
-
cd
dans la nouvelle qt5
de l'étape précédente.
-
À partir de l'invite de commande de Visual Studio, le reste des sous-modules Qt doit être téléchargé :
perl ./init-repository --no-webkit
L'exécution de cette étape prend un certain temps, parce qu'elle doit télécharger beaucoup de choses, mais ce n'est pas si terrible avec une connexion décente.
-
Ensuite, téléchargez tous les sous-modules OPTIONNELS restants qui init-repository
ne télécharge pas - SmartGit ne fonctionne bien qu'à partir de cette étape (voir les commentaires ci-dessous).
-
Une fois le téléchargement de Qt terminé, la commande suivante prépare l'environnement de construction (elle doit également être exécutée à l'aide de l'invite de commande [32|64] VS Native Tools) :
configure -developer-build -opensource -confirm-license -mp -nomake examples -nomake tests -debug-and-release -c++11 -no-warnings-are-errors -platform win32-msvc2012
.
Remarques sur cette ligne de commande : le c++11
peut ne pas être nécessaire avec le compilateur VS2012, mais fonctionne avec VS2013 ; l'option -no-warnings-are-errors
est nécessaire dans le cas où vous obtenez des erreurs sur une construction automatique 64-bit d'ANGLE ; -platform
est automatiquement réglé sur win32-msvc2012
Par conséquent, par défaut, la version 32 bits de Qt est utilisée, et -platform n'a probablement pas besoin d'être fourni à la ligne de commande (même si vous avez des versions précédentes de VS installées). Pour VS2013, utilisez -platform win32-msvc2013
.
L'exécution de cette étape prend quelques minutes, mais ce n'est pas si grave.
-
Enfin, la commande permettant de construire Qt sur le système (également exécutée dans l'invite de commande VS Native Tools) est simple :
nmake
Attendez-vous à attendre des heures pour que la construction soit terminée. Si vous avez spécifié un dossier de sortie avec -prefix
(voir les notes ci-dessous), puis utilisez nmake install
sinon c'est tout.
NOTES :
Notes générales
Au cas où vous seriez confus à la lecture de la documentation ci-dessus, sachez que la bibliothèque ANGLE sera utilisée (par défaut) au lieu d'OpenGL, et c'est pourquoi vous avez dû installer DirectX 11, ci-dessus.
Assurez-vous que vous utiliser l'invite de commande VS Native Tools pour exécuter toutes les commandes du lien ci-dessus (c'est-à-dire, perl .\init-repository --no-webkit
, configure
et nmake
). Vous utiliserez l'invite de commande [32|64] bits ( x86
o x64
), selon que vous construisez Qt en 32 ou 64 bits. Si vous installez perl avec l'Invite de commande ouverte (assurez-vous qu'elle est dans le répertoire PATH
), vous devrez redémarrer l'invite de commande pour que perl soit reconnu comme une commande.
Lorsque vous exécutez "init-repository" (à partir des étapes du lien ci-dessus), ce n'est pas clair dans la documentation, mais vous devez l'exécuter via perl
; c'est-à-dire perl ./init-repository --no-webkit
. Le site configure
y nmake
Cependant, les commandes sont appelées directement.
Une option très utile à passer à configure
es -mp
qui permet à Qt de se construire sur plusieurs cœurs en parallèle, ce qui accélère considérablement le (long) temps de construction.
Pour spécifier un dossier de sortie, ajoutez l'option -prefix [outfolder]
au configure
commande. Par exemple, utilisez -prefix %CD%\output\x64\vc12
serait un (sous-)dossier de sortie approprié pour une version 64 bits de Visual Studio 2013 (12.0).
Support Unicode (ICU)
Si vous voulez le support Unicode (via UNITÉ DE SOINS INTENSIFS ), prêtez une attention particulière aux instructions indiquées dans le lien ci-dessus. En résumé, ICU doit être construit à partir de zéro dans VS 2012, car les seuls binaires ICU pré-construits pour Windows sont pour VS 2010. La construction dans VS 2012 est facile - il suffit de localiser la solution ICU (.sln) dans <icuroot>. \icu\source\allinone et construisez en mode Debug et Release (soit en mode 32-bit ou 64-bit, selon le mode dans lequel vous construisez Qt - NE PAS construire dans l'autre bitness, car ICU écrasera le dossier de sortie avec les binaires). (Le processus de construction de Qt localisera correctement la version debug ou release de ICU). Il devrait se construire sans erreurs. Ensuite, ajoutez le chemin à <icuroot> \lib comme une entrée de chaîne dans une (probablement) NOUVELLE variable d'environnement Windows appelée "LIB" (vous pouvez utiliser Rapid EE pour cela ; faites de LIB une "chaîne extensible" dans RapidEE même s'il n'y a qu'une seule entrée), et ajoutez également le chemin vers <icuroot>. \include comme une entrée de chaîne dans une (probablement) NOUVELLE variable d'environnement Windows appelée "INCLUDE". (Note : L'ajout de ces chemins à la variable PATH ne fonctionnera pas.) Une fois Qt construit, vous pouvez supprimer toutes les entrées que vous venez d'ajouter. Aussi, faites ajouter le chemin d'exécution aux dll de l'ICU (<icuroot>) \bin ) à la variable PATH de l'environnement, ou au processus de construction de Qt (spécifiquement, quand uic.exe
) donnera un erreur trompeuse et mensongère . Enfin, sur le configure
(ci-dessous), assurez-vous d'ajouter l'option -icu
comme paramètre supplémentaire de la ligne de commande.
Échec de l'USI :
Actuellement, il semble y avoir un bogue dans la construction de Qt5 avec le compilateur VS2012 lorsque ICU est activé. Plus précisément, qtbase\src\corelib\codecs\qtextcodec.cpp
La ligne 688 (Qt5 v5.02) ne renvoie pas de codec pour le nom de codec "US-ASCII" (le codec est NULL), ce qui provoque un crash de "lrelease.exe" lorsqu'on essaie de déréférencer le codec plus tard (j'ai perdu la trace de ce fichier/numéro de ligne, mais il s'agit d'une déréférence évidente du codec NULL). codec
variable). Malheureusement, cela signifie qu'à ma connaissance, WebKit ne peut pas être construit avec (au moins la) version 32 bits de Qt5 avec le compilateur VS2012. parce que WebKit a besoin de l'ICU.
Si quelqu'un est capable de construire Qt5 avec le compilateur VS2012 avec ICU activé, veuillez mettre à jour ce Wiki en le disant.
Clarification sur les soins intensifs :
Si vous avez ICU dans votre chemin, Qt le construira automatiquement. En d'autres termes, le drapeau " -icu
" est là implicitement. Cependant, cela provoque une erreur avec "lrelease.exe" comme mentionné ci-dessus. La solution consiste donc à ajouter l'option -no-icu à la commande configure.
Sous-modules supplémentaires
Si vous voulez des submodules en outre aux submodules par défaut, vous pouvez utiliser SmartGit (ou la ligne de commande) après vous complétez le init-repository
commandement. SmartGit est peut-être le plus simple, car vous n'avez pas besoin de copier le chemin d'accès à la ligne de commande, mais pouvez utiliser directement l'interface utilisateur.
AVERTISSEMENT : NE TÉLÉCHARGEZ PAS L'OPTION qlalr
SOUS-MODULE Il n'est pas nécessaire pour les utilisateurs de Qt, mais est seulement utilisé pour le développement interne de Qt.
AVERTISSEMENT : Une ligne de commande shell, suivie de perl .\init-repository --no-webkit
doit être utilisé (PAS SmartGit) ; ces étapes ne téléchargeront correctement que les sous-modules Qt par défaut. Vous devez no utiliser SmartGit pour cloner et télécharger les fichiers Git à partir de git://gitorious.org/qt/qt5.git
parce que SmartGit ne gère pas actuellement les sous-modules correctement. Au lieu de cela, ouvrez une invite de commande standard du shell Windows (en utilisant n'importe quelle application d'invite de commande, pas nécessairement l'invite de commande VS Tools), et (en supposant que Git est correctement installé sur le système ; une installation de SmartGit peut ou non le faire automatiquement ; si ce n'est pas le cas, allez à l'adresse suivante Git pour Windows et l'installer directement) tapez git clone git://gitorious.org/qt/qt5.git
directement à partir de la ligne de commande ; vous pouvez éventuellement le faire suivre par git checkout stable
(Je ne suis pas sûr que cette branche soit vérifiée par défaut) ; puis suivez cette commande avec la ligne de commande perl .\init-repository --no-webkit
pour récupérer les dépôts par défaut (sauf WebKit, qui nécessite ICU et ICU ne peut apparemment pas être construit dans Qt5 32 bits avec VS2012 ; voir les commentaires).
Les étapes pour télécharger tous les fichiers sources Qt nécessaires sont donc les suivantes : 1. Utilisez une ligne de commande Windows pour exécuter la commande initiale git clone git://gitorious.org/qt/qt5.git
; 2. Exécuter perl .\init-repository --no-webkit
à partir d'une invite de commande VS Tools 2012 ; et ensuite, facultativement 3. Utiliser SmartGit (à partir du lien ci-dessus) (ou équivalent) pour "ouvrir un projet existant" (choisir le dossier racine de Qt5) et faire un Pull à partir de SmartGit pour télécharger tous les dépôts non par défaut (mais ne pas télécharger qlalr
). C'est tout ; vous avez tous les fichiers Qt nécessaires et optionnels (y compris les submodules) sur votre système.
Si quelqu'un découvre d'autres sous-modules optionnels qui ne se construisent pas et/ou qui sont à usage interne seulement (en dehors de qlalr
), veuillez mettre à jour ce Wiki pour les spécifier.
En général, les submodules par défaut obtenus via perl .\init-repository --no-webkit
sont suffisants. Si vous savez, ou découvrez plus tard, que vous avez d'autres modules (non par défaut), vous pouvez toujours les ajouter plus tard.
Problèmes généraux
Si à un moment donné vous obtenez l'erreur disant que la commande "python" (ou quelque chose de similaire) n'est pas reconnue, vérifiez simplement que le dossier contenant python.exe
(ou le .exe
) fait partie de la variable du chemin. Si ce n'est pas le cas, ajoutez-le (utilisez RapidEE comme indiqué ci-dessus pour plus de commodité) et essayez à nouveau ce que vous faisiez. Si elle est présente, assurez-vous que vous avez redémarré votre invite de commande APRÈS l'ajout de la commande au chemin.
Il est important de noter deux autres problèmes liés aux chemins d'accès (cités dans la documentation associée au lien ci-dessus) : " Assurez-vous que l'exécutable perl est trouvé dans le chemin avant l'exécutable perl fourni par msysgit, puisque ce dernier est périmé. " ; et " Il se peut que vous ne puissiez pas construire si sh.exe est dans votre PATH (par exemple à cause d'une installation de git ou de msys). Une telle erreur est indiquée par qt5-srcqtbasebinqmake.exe : command not found et alike. Dans ce cas, assurez-vous que sh.exe n'est pas dans votre chemin. Si votre installation est déjà configurée, vous devrez la reconfigurer. "
Pendant le processus, vous pouvez rencontrer une erreur en utilisant nmake
sur un dossier. Si c'est le cas, il suffit d'aller dans ce répertoire et de forcer la construction du fichier problématique. Ensuite, commencez le nmake
sur Qt5 à nouveau.
Problèmes spécifiques
AVERTISSEMENT : Vous devrez peut-être désactiver le logiciel antivirus ET SANDBOXING lors de l'examen de Qt nmake
(et, pour être sûr, tout au long de ce processus). En interne, Qt exécute un certain nombre d'exécutables avec lesquels les programmes antivirus peuvent interférer (parfois silencieusement). En particulier, si vous avez un logiciel de sandboxing, assurez-vous de le désactiver.
AVERTISSEMENT : AVAST ! Utilisateurs du bac à sable : Avast Sandbox a un bug dans lequel même lorsque vous désactivez l'auto-sandbox d'Avast, le sandbox ne se désactivera PAS et il mettra silencieusement en sandbox tous les fichiers de ressources créés automatiquement par Qt. rcc
pendant le processus de construction de Qt. La construction de Qt échoue TOUJOURS pour tout utilisateur qui a installé la fonction autosandbox d'Avast, MÊME AVEC L'AUTO-SANDBOXING DÉSACTIVÉ. LA SEULE FAÇON DE SURMONTER CE PROBLÈME EST DE DÉSINSTALLER COMPLÈTEMENT AVAST ! DE VOTRE SYSTÈME avant de construire Qt. Vous pouvez réinstaller Avast ! une fois que la construction de Qt est terminée.
La compilation de Qt5 peut prendre beaucoup de temps (des heures, même avec l'option multithreading -mp). Soyez patient.
Étape 3 : Intégration de Qt5 avec Visual Studio 2012
-
Téléchargez et installez le logiciel Visual Studio Addin Qt5 . Il se trouve dans la section "Autres téléchargements", vers le bas de la page, et ne fonctionnera pas avec Visual Studio Express.
-
Ouvrez Visual Studio 2012, et allez dans Qt Options
(C'est sous "Qt5" dans la barre de menu supérieure).
-
Dans l'onglet Versions de Qt, vérifiez si Qt5 est déjà là. Si ce n'est pas le cas, cliquez sur ajouter, choisissez un nom de version (probablement un nom tel que 5.x.x), et naviguez jusqu'au dossier contenant qmake.exe
(habituellement C:\Qt\qt5\qtbase
).
-
Quittez la boîte de dialogue Options Qt.
-
Créez un nouveau projet Visual Studio. Lorsque la boîte de dialogue Nouveau projet s'affiche, vous devriez voir l'élément suivant Qt5 Projects
Option de modèle.
-
Une fois que vous avez votre nouveau projet Qt, faites un clic droit dessus et sélectionnez "Convert to QMake generated project". Construisez le projet, puis cliquez à nouveau avec le bouton droit de la souris et sélectionnez "Convert project to Qt Add-in project". Reconstruisez-le à nouveau, puis exécutez-le. Vous devriez maintenant avoir un projet Qt fonctionnel.
Ajouter Qt5 à un projet VC++ existant dans Visual Studio 2012
Cette section peut ou non vous convenir. Si vous rencontrez des problèmes ou si vous avez des solutions supplémentaires ou meilleures, veuillez laisser un commentaire ou modifier l'étape appropriée.
-
Faites un clic droit sur votre projet dans VS, et choisissez "unload project". Cliquez à nouveau avec le bouton droit de la souris sur le projet, et choisissez "edit [project name].vcxproj". Cela ouvre le fichier du projet pour que vous puissiez y ajouter Qt5.
-
Descendez dans le PropertyGroup global, et ajoutez ou modifiez l'élément suivant <Keyword>
à Qt4VSv1.0.
-
Rechargez le projet, puis faites un clic droit et sélectionnez "Convertir le projet en projet de complément Qt".
-
Attendez que la conversion se termine (cela ne prend pas plus de quelques secondes), puis choisissez Qt5>Project Settings
. Allez dans l'onglet Modules, et cochez les modules sur lesquels vous souhaitez que votre projet s'appuie (les modules de base sont les suivants Core
, Widgets
et GUI
).
-
Suivre les étapes aquí ajoutez le répertoire $(QTDIR)\include
.
NOTES :
Si, à tout moment, vous comprenez windows.h
vous devez #define NOMINMAX
avant en le faisant pour éviter tout conflit avec qdatetime.h
.
Une fois les étapes ci-dessus effectuées, vous pouvez rendre votre projet utilisable par Qt Creator en sélectionnant Qt5>Create basic .pro file
.
NOTES DE FIN : Si vous avez une question liée aux informations contenues dans ce guide, veuillez la poster comme une nouvelle question (et non comme une réponse ici), et la réponse ou un lien vers la réponse pourra être ajouté.
0 votes
Je suis également à la recherche d'une réponse. Vous pouvez vous référer à qt-project.org/forums/viewthread/24896 . Je n'ai pas essayé. Faites-nous savoir si vous y parvenez.
0 votes
Note : Cette question/réponse est issue de la discussion du forum Qt dont le lien figure dans le commentaire ci-dessus.
0 votes
qt-project.org/downloads a Qt5.0.2 VS2012 x64 version maintenant.
1 votes
@user1899020 Super ! ... Mais, malheureusement, je suis obligé de construire une version 32 bits en ce moment dans VS2012.
0 votes
... et maintenant je dois construire dans VS2013 (avant qu'un pré-construit soit prêt pour cela). Est-ce que je sens un schéma ?
0 votes
Voir aussi stackoverflow.com/a/14932316/368896
0 votes
Les conseils pour compiler Qt 5.5 avec visual studio 2015 sont ci-dessous.