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

Visual C++ Discussion :

Impossible de compiler mon projet Qt sous MSVS 2012 Express


Sujet :

Visual C++

  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut Impossible de compiler mon projet Qt sous MSVS 2012 Express
    Bonjour,

    Je souhaite utiliser Visual Studio Express 2012 pour un projet Qt (5.4.1) (je suis sous Windows 7).
    J'ai donc installé la version de Qt compilée avec le compilateur de MSVS 2012. J'ai vu qu'il y avait un linker pour Qt mais il n'est pas disponible pour la version express

    J'ai ensuite suivi les indications :
    - J'ai setté les variables d'environnement QTDIR et QMAKESPEC.
    - Sous visual studio, j'ai ensuite créé un projet de type "Projet Makefile" en configurant les lignes de commande pour la compilation tel qu'indiqué dans le tutoriel.

    l'include des librairies Qt semble bien se passer dans mon programme, l'intellisense reconnait les classes Qt, j'ai recopié un programme tout simple trouvé dans les exemples Qt. Mais lorsque je compile, le linker renvoie une centaine d'erreurs du type (je vous copie la première):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur	1	error LNK2019: symbole externe non résolu "__declspec(dllimport) public: __thiscall QWidget::QWidget(class QWidget *,class QFlags<enum Qt::WindowType>)" (__imp_??0QWidget@@QAE@PAV0@V?$QFlags@W4WindowType@Qt@@@@@Z) référencé dans la fonction "public: void __thiscall Ui_MainWindow::setupUi(class QMainWindow *)" (?setupUi@Ui_MainWindow@@QAEXPAVQMainWindow@@@Z)	C:\Users\User\Documents\C++\test\test.obj	test
    Alors d'après mes recherches précédentes pour installer la librairie HDF5 sous visual studio, les erreurs de liens comme celle-ci avec la mention __imp_ indique un problème de conflit 32/64 bits. J'ai une machine 64 bits mais tout est bien installé/compilé en 32 bits (VS, Qt).
    La mention __declspec(dllimport) à l'air de dire que c'est un problème de librairie non trouvée mais je ne vois pas pourquoi puisque il me trouve bien les include? Comment ajouter la dll sinon?

    Voilà j'espère avoir donné suffisament d'informations, merci d'avance pour votre aide!

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    la mention __imp_ indique un problème de conflit 32/64 bits
    Vous avez vu ça où, svp ??

    __declspec(dllimport) à l'air de dire que c'est un problème de librairie non trouvé
    Non, c'est plutôt le numéro d'erreur "LNK2019" qui le dit.

    mais je ne vois pas pourquoi puisque il me trouve bien les include?
    C'est un problème d'édition de lien, il s'en cogne des .h le linker.
    Faut lui donner les .lib ou les .a ou les .o ou les .obj dont il a besoin.

    Donc, vérifiez dans configuration pour le linker que vous lui tout don il a besoin.

  3. #3
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    Merci pour la réponse bacelar,

    Pour le __imp_ je n'ai plus le lien mais c'est un gars qui disait ça sur un forum, que j'avais lu car j'avais ce type d'erreur en voulant installer la librairie externe HDF5, et comme c'était effecivement ça mon problème (une incohérence 32/64 bits) je pensais que ça voulait effectivement dire ça. Mais tu as raison ça n'a probablement rien a voir puisque ce n'est pas le problème ici.

    Donc si j'ai bien compris il arrive bien a compiler mais c'est après avec que linker que ça se passe mal car il ne trouve pas les lib.
    Il faudrait donc je je lui ajoute QtCore.lib, QtGui.lib et QtWidget.lib je pense.
    Le problème, c'est que je ne trouve pas dans les options où spécifier ça!

    Avec mes autres projets VS, dans les propriétés projet j'ai un menu "editeur de liens"/"entrée" où je peux indiquer des *.lib. Mais là, comme je suis en projet de type "Makefile" ce menu n'apparaît pas. C'est bête mais du coup je ne trouve pas comment faire
    Pour le moment j'ai juste ajouté le chemin du répertoire lib de Qt dans le menu "Répertoires VC++"/"répertoires de bibliothèques".

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    en utilisant la variable d'environnement "LIBS", non ?
    http://resources.esri.com/help/9.3/a....WindowsQt.htm

  5. #5
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    Cela ne fonctionne toujours pas pour moi... J'ai un peu de mal avec le fonctionnement des makefiles.
    J'ai fini par recréer un projet VS cette fois de type "Console application" et non "Makefile", pour plutôt utiliser les solutions Visual Studio sans m'occuper du makefile.
    Dans les propriétés du projet ("Répertoires VC++") j'ai spécifié $(QTDIR)\bin, $(QTDIR)\lib et $(QTDIR)\include pour respectivement "Répertoires d'exécutables", "Répertoires de bibliothèques" et "Répertoires d'include".
    Toujours dans les propriétés projet, dans "Editeur de liens / entrée" j'ai ajouté "Qt5Core.lib", "Qt5Widgets.lib" et "Qt5Gui.lib".
    ça fonctionne! Le code ci-dessous compile bien et m'affiche une fenêtre avec un bouton "Hello world".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <QtWidgets/qapplication.h>
    #include <QtWidgets/qpushButton.h>
     
    int _tmain(int argc, char *argv[])
    {
    	QApplication app(argc, argv);
    	QPushButton bouton("Hello world!");
    	bouton.show();
    	QObject::connect(&bouton, SIGNAL(clicked()), &app, SLOT(quit()));
    	return app.exec();
    }
    Merci encore pour ton aide, sujet résolu!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Aide] Impossible de compiler mon plug-out
    Par selimR dans le forum BOUML
    Réponses: 6
    Dernier message: 07/10/2007, 12h08
  2. Comment compiller mon projet avec Dev C++
    Par Micheal1221 dans le forum C++Builder
    Réponses: 2
    Dernier message: 05/07/2006, 12h38
  3. Impossible de compiler un projet avec #include <glib.h>
    Par canard75 dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 14/12/2005, 18h18
  4. Jbuilder2006 impossible de compiler mon projet
    Par danje dans le forum JBuilder
    Réponses: 4
    Dernier message: 01/11/2005, 23h32
  5. [Dev-cpp] Impossible de compiler le projet !
    Par Franck.H dans le forum Dev-C++
    Réponses: 5
    Dernier message: 18/10/2005, 11h55

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