IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Qt 5 nécessite-t-il Visual Studio ?

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Hobby
    Inscrit en
    Août 2002
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Hobby

    Informations forums :
    Inscription : Août 2002
    Messages : 128
    Par défaut Qt 5 nécessite-t-il Visual Studio ?
    Bonjour,

    Je souhaiterais migrer de MS Visual Studio Community vers Qt 5.

    D'après la réponse de Gojir4 (lien)

    il faut disposer de MSVC 2017/2015 32/64 bit.

    Cela veut-il dire que MS VS doit obligatoirement être installé pour pouvoir travailler avec Qt 5 en 64 bits ?

    Merci pour vos réponses.

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut

    Absolument pas...

    Ce qui se passe, c'est que tu dois veiller à installer la version de Qt adaptée au compilateur que tu prévois d'utiliser.

    C'est -- en effet -- l'un des gros problèmes de C++: son ABI (Application Binary Interface, ou, si tu préfères, la manière dont les différentes fonctions d'une applications pourront s'appeler les unes les autres) n'est absolument pas standardisée, ce qui fait que, si tu compile une partie du code C++ sous windows, par exemple, avec Gcc / MinGW, tu ne peux pas utiliser le résultat obtenu (les fichiers objets, le code binaire généré par Gcc/ MinGW) avec une partie du code qui serait compilée avec Visual Studio, et inversement.

    Pire encore, il n'y a aucune garantie pour que du code binaire exécutable obtenu en compilant une partie du code avec VisualStudio 2010, par exemple, puisse être utilisée avec une partie du code qui aurait été compilée avec VisualStudio 2017.

    Comme -- a priori -- tout ton projet sera toujours compilé intégralement avec un compilateur particulier, le problème se pose essentiellement au niveau des bibliothèques externes, qu'il s'agisse de bibliothèque statiques (xxx.lib avec visual studio, libXXX.a avec Gcc / MinGW) ou dynamiques (.dll sous windows, .so sous linux): il faut que les biblothèques externes que tu utilises (celles développées en C++, à tout le moins, le problème n'existant pas pour les bibliothèques développées en C) aient été spécifiquement compilées avec le même compilateur, dont on a utilisé la même version que le compilateur que l'on s'apprête à utiliser pour compiler le projet sur lequel on travaille.

    Ajoutes à cela le fait que, si une bibliothèque est compilée pour fournir un code fonctionnant en 32bits, elle doit systématiquement être utilisée avec une application qui soit elle aussi compilée pour fournir du code 32 bits, que l'on ne peut pas utiliser une bibliothèque 32bits avec une application 64 bits, ni inversement.

    C'est la raison pour laquelle l'installateur de Qt fourni autant de possibilités : pour te permettre de choisir la version de Qt compilée spécifiquement pour le compilateur et de la manière dont tu prévois de l'utiliser.

    Il n'y a rien qui t'empêche, entre autres, de prévoir d'utiliser plusieurs versions (la 5.10 et la 5.12, par exemple) de Qt avec plusieurs compilateurs différentes (VisualStudio 2010, VisualStudio 2017 et MinGW, par exemple), en dehors du fait que l'installation des différentes versions prendra une place importante, bien sur.

    Et, bien sur, si tu agis de la sorte, tu devra veiller, en utilisant QtCreator, à sélectionner explicitement le kit qui lui permettra d'utiliser spécifiquement la version de Qt avec laquelle tu veux travailler adaptée au compilateur que tu veux utiliser.

    Ce qu'il faut bien comprendre, enfin, c'est que "VisualStudio Community" est -- surtout -- un EDI (un Environnement de Développement Intégré), c'est à dire, un ensemble qui regroupe différents outils tels que:
    • un éditeur de textes
    • un compilateur
    • un débuggueur
    • des aides diverses et variées
    • ...

    alors que Qt -- à la base -- est une bibliothèque, c'est à dire un projet qui se fait fort de te fournir "un certain nombre de fonctionnalités" destinées à te "faciliter la vie" lorsque tu développera tes propres projets.

    QtCreator par contre, qui est développé et gracieusement fourni par Qt est lui-aussi un EDI, tout comme Code::Blocks, par exemple. Mais le gros avantage, c'est qu'il n'est pas "bloqué" sur l'utilisation d'un compilateur particulier (ou pire, sur l'utilisation d'une version bien particulière du compilateur) comme l'est VisualStudio, dans le sens où il permet d'utiliser n'importe quel compilateur présent (et accessible) sur ton système d'exploitation.

    Pendant très longtemps, l'installateur de Qt n'a proposé que des version 32bits pour MinGW pour la raison bien simple que l'équipe de développement de Qt ne passait pas trop son temps à vérifier les versions de MinGW qui existaient.

    Il était tout à fait possible de compiler soi-même l'ensemble du projet Qt en 64bits en utilisant MinGW si on en avait le courage. Le seul truc, c'est que cela prend un temps bête pour obtenir l'intégralité du projet.

    Pendant tout un temps, je me suis d'ailleurs amusé à compiler Gcc, les binutils et la Qt (ainsi que tout un tas d'autres bibliothèques utiles, d'ailleurs) dans leurs dernières versions en 64 bits sous windows (avec MinGW, donc), et j'ai même fourni à un moment le "package complet" ici pour ceux que cela intéressait .

    Depuis, les dernières versions de Qt (à partir de la version 5.12, il me semble) l'équipe de développement de Qt a veillé à utiliser une version plus récente de MinGW que celle sur laquelle elle "restait bloquée" depuis des années, si bien que l'installateur de Qt propose désormais d'installer MinGW dans l'une de ses dernières versions en 64 bits, ainsi que la version correspondante de Qt.

    Donc, au final, il n'y a jamais eu d'obligation d'utiliser VisualStudio pour disposer d'une version 64bits de Qt, même s'il est vrai que cela demandait "plus de travail" pour obtenir une version 64bits sous MinGW. Mais les choses évoluent, et il est désormais possible d'obtenir une version 64bits sous MinGW de Qt aussi simplement que tout le reste
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre confirmé
    Homme Profil pro
    Hobby
    Inscrit en
    Août 2002
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Hobby

    Informations forums :
    Inscription : Août 2002
    Messages : 128
    Par défaut
    @koala01

    Merci koala01 pour cette réponse complète.

    Je viens de télécharger Qt et effectivement, le choix du compilateur est bien visible à une des étapes de l'installation.

    Par contre vous écrivez "le "package complet ici pour ceux que cela intéressait".
    Il n'y a pas de lien sur le "ici" ; j'ai par contre trouvé ceci.

    Merci !

  4. #4
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    En fait je ne voulais pas fournir de lien, je voulais parler du "forum de developpez.net" en général

    Quant au lien que tu as déniché, il s'agit d'un très vieil article que j'ai écrit en son temps (en ... 2007) au moment où il était assez difficile de disposer d'une version 64 bits de MinGW.

    Depuis, les choses ont énormément évoluer et, si la manière de s'y prendre reste à peu de choses près d'actualité, cet article mériterait très largement une sérieuse mise à jour.

    Pour te donner une idée, je proposais à l'époque d'utiliser MSYS, qui a été abandonné au profit de MSYS2 et la manière de compiler (Gcc / MinGW / binutils) a elle aussi un peu évolué depuis

    Mais oui, l'un dans l'autre, c'est à peu près à cette époque que je me suis mis à compiler des versions personnelles de Qt en 64 bits sous MinGW, et je l'ai -- sommes toutes -- fait jusqu'à récemment.

    Je verrai à l'usage si je persiste dans cette pratique ou non, sachant que Qt 6 sortira a priori dans "pas très longtemps" et qu'elle nécessitera ad minima un compilateur C++17 (voir un compilateur C++20 par la suite ). Tout dépendra -- au final -- de la version de MinGW utilisée par Qt lors de la génération de ses binaires
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

Discussions similaires

  1. News Visual Studio
    Par farscape dans le forum Visual C++
    Réponses: 34
    Dernier message: 27/04/2010, 10h21
  2. [IDE] Visual Studio 2005 Express
    Par Louis-Guillaume Morand dans le forum Général Dotnet
    Réponses: 130
    Dernier message: 23/12/2006, 15h08
  3. Visual Studio .Net et template
    Par Sphax dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 17/07/2004, 16h33
  4. Probleme d'utilisation de directX 9 avec visual studio.net
    Par cranedoeuf dans le forum DirectX
    Réponses: 1
    Dernier message: 24/05/2004, 04h33
  5. Version de Windows dans Visual Studio !!!
    Par Jasmine dans le forum MFC
    Réponses: 3
    Dernier message: 18/03/2004, 17h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo