visual studio Comment convertir un projet win32 ordinaire(VC++ vcproj) en un projet Qt?



visual-studio projects-and-solutions (4)

J'utilise Qt VS Tools au lieu de Qt VS Add-in.

Instructions

Dans le fichier .vcxproj, apportez les modifications suivantes:

Ajoutez <Keyword>Qt4VSv1.0</Keyword> dans <Project><PropertyGroup Label="Globals"> (en accord avec la réponse de Benjamin ).

Ajoutez l'élément suivant dans <Project> (l'élément racine):

  <ProjectExtensions>
    <VisualStudio>
      <UserProperties MocDir=".\GeneratedFiles\$(ConfigurationName)" UicDir=".\GeneratedFiles" RccDir=".\GeneratedFiles" lupdateOptions="" lupdateOnBuild="0" lreleaseOptions="" Qt5Version_x0020_x64="5.6-msvc2013_64" MocOptions="" />
    </VisualStudio>
  </ProjectExtensions>

Notez que la valeur de l'attribut Qt5Version_x0020_x64 doit correspondre au nom d'une version Qt dans Qt VS Tools. Vous pouvez définir une valeur arbitraire, puis la corriger dans les paramètres du projet Qt dans Visual Studio.

Ma configuration

  • Visual Studio 2013
  • Qt VS Tools 2.0.0 Beta (apparemment une nouvelle image de Qt VS Add-in)
  • Qt 5.6 msvc2013_64

Remarques

Lorsque je suis la réponse de Benjamin et que je tente de "convertir un projet en projet Qt VS Tools", Visual Studio reste bloqué.

La seule fonctionnalité spécifique à Qt que j'ai essayée avec le projet est d'exporter un fichier .pri.

J'ai inversé les modifications nécessaires à partir d'un nouveau projet VS créé à l'aide du modèle QT GUI Application .

Comment convertir des fichiers vcproj existants en fichiers de projet que le complément QT de Visual Studio reconnaît et traite comme des projets Qt valides?

Dois-je simplement mordre la balle et créer de nouveaux projets pour remplacer les anciens, puis ajouter du code existant?

J'utilise QT 4.6 et VS 2008 avec le complément Qt 1.1.2. Les fichiers vcproj originaux n'ont pas été générés avec QMake.


Answer #1

À l’aide de Visual Studio 2010+, il est désormais possible de convertir un projet en projet Qt Addin, en utilisant la fonctionnalité "Convertir un projet en projet Qt" du complément Qt.

Les étapes suivantes proviennent du travail sur le bogue QTVSADDINBUG-27. Cela a été testé avec Visual Studio 2010, mais devrait fonctionner de la même manière avec les nouvelles versions:

  1. Faites un clic droit sur votre projet dans "Explorateur de solutions", cliquez sur "Décharger le projet"
  2. Faites un clic droit sur votre projet dans "Explorateur de solutions", cliquez sur "Modifier .vcxproj"
  3. Ajouter la ligne <Keyword>Qt4VSv1.0</Keyword> entre les balises <PropertyGroup Label="Globals"> et </PropertyGroup> .
  4. Faites un clic droit sur votre projet dans "Solution Explorer", cliquez sur "Reload Project"
  5. Faites un clic droit sur votre projet dans "Explorateur de solutions", cliquez sur "Convertir le projet en projet complémentaire Qt"

Si vous avez des fichiers d'en-tête dans votre projet, vous devrez suivre les instructions de cette answer pour déclencher la génération de fichiers moc_ * dans le dossier "Fichiers générés".

Pour les éditions de Visual Studio antérieures à 2010, consultez ce travail .


Answer #2

La conversion d'un projet VC ordinaire en un projet QT devrait être plus facile et le message d'erreur affiché par le plug-in Qt lors de la tentative d'ajout d'une classe Qt à un projet non-QT s'avère particulièrement inutile, en particulier si l'on considère les différences réelles entre un fichier Qt .vcprojfile et un non-Qt sont minimes. Il arrive souvent que vous ayez du code existant dans les bibliothèques et les DLL. Au cours de la migration vers Qt, vous souhaiterez peut-être ajouter une classe Qt à un module existant qui était auparavant un projet non-Qt. Si le module contient relativement peu de fichiers sources, il peut être plus facile de recréer le projet en tant que projet Qt. S'il contient des centaines de fichiers sources ou s'il est complexe à d'autres égards, il est souvent plus simple de modifier le fichier .vcproj à la main. En comparant un fichier .vcproj classique avec un fichier Qt, il est facile de voir quelles sont les différences:

  1. Un projet Qt a un mot-clé = "Qt4VS1.0" immédiatement avant la ligne TargetFrameWorkVersion en haut du fichier.
  2. Au bas du fichier, vous devez ajouter les Globals requis (en particulier QtVersion.Win32)
  3. Vous devrez ajouter les emplacements des fichiers d'en-tête Qt aux chemins d'inclusion (pour toutes les configurations de construction). Vous pouvez le faire plus tard via l'interface utilisateur du studio visuel
  4. Pour un exe ou une DLL, vous devrez également ajouter les emplacements de la bibliothèque Qt et les fichiers de bibliothèque aux options de l'éditeur de liens.

Vous n'avez en fait besoin que de faire 1 et 2 dans un éditeur de texte et vous pouvez ensuite recharger le projet dans Visual Studio.

Une fois que vous avez défini les chemins d'accès et les bibliothèques, vous devriez pouvoir créer le projet comme d'habitude. Ensuite, vous pouvez ajouter une nouvelle classe Qt ou convertir une classe existante en une classe Qt. Pour ce faire, supprimez d'abord les fichiers source de la classe existante du projet, sinon l'assistant Qt Add Class risque de se plaindre.

Les étapes ci-dessus sont destinées aux utilisateurs expérimentés et vous devez toujours sauvegarder les fichiers .vcproj des projets existants avant de les éditer manuellement. De simples erreurs peuvent rendre le fichier inutilisable.


Answer #3

Plus de réponse de l'ingénieur support Qt; Je pense que le premier pargraphe est utile car je ne le savais pas auparavant:

Je pense que c'est vraiment un malentendu. Si vous avez un projet Qt généré avec le complément, vous pouvez modifier ce projet en un projet Qt généré par qmake et vice versa; Si vous avez un fichier .vcproj généré par qmake -tp vc, vous pouvez le convertir en un complément Qt.

Il n'y a pas de fonctionnalité pour convertir un projet win32 normal en un projet activé par Qt, donc la suggestion créée est toujours valide, voir:

https://bugreports.qt.io/browse/QTVSADDINBUG-27

Je peux voir d'après l'historique de ce rapport qu'il a été fermé et rouvert à nouveau, donc je suppose qu'il y a eu un malentendu concernant ce que vous recherchiez en premier lieu.

Si vous créez un fichier .pro pour votre projet en utilisant qmake, vous devriez pouvoir créer un fichier .vcproj en utilisant 'qmake -tp vc' sur ce fichier .pro. Le manuel de qmake est disponible ici:

http://doc.qt.io/qt-5/qmake-manual.html

J'espère que ça aide.

Cordialement,

-

Ingénieur support, Qt Development Frameworks, Nokia





projects-and-solutions