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 :

Erreur sous Visual C++ 9 - Impossible de compiler une application multi fichiers

  1. #1
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 38
    Points : 28
    Points
    28
    Par défaut Erreur sous Visual C++ 9 - Impossible de compiler une application multi fichiers
    Bonjour,

    Je debute sur Qt et je tente d'effectuer les Tutoriaux de Developpez.com (tres bien fait)

    Je n'arrive pas a compiler le tutorial numéro 7, la premiere application multi fichiers.

    Visual C++ 9 me donne les erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    lcdrange.obj : error LNK2005: "public: __thiscall LCDRange::LCDRange(class QWidget *)" (??0LCDRange@@QAE@PAVQWidget@@@Z) already defined in main.obj
    lcdrange.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall LCDRange::metaObject(void)const " (?metaObject@LCDRange@@UBEPBUQMetaObject@@XZ)
    lcdrange.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall LCDRange::qt_metacast(char const *)" (?qt_metacast@LCDRange@@UAEPAXPBD@Z)
    lcdrange.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall LCDRange::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@LCDRange@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
    D:\Qt\Tuto1-VC++\Debug\Tuto1.exe : fatal error LNK1120: 3 unresolved externals
    Je n'arrive pas vraiment a comprendre ce qui me manque ...

    Petite precision je cree mes projet grace a Cmake, pour CMakeListe est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    PROJECT(Tuto1)
     
    CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
     
    ADD_DEFINITIONS (-D_CRT_SECURE_NO_DEPRECATE -D_USE_MATH_DEFINES)
     
    FIND_PACKAGE(Qt4)
     
    INCLUDE(${QT_USE_FILE})
     
    ADD_EXECUTABLE ( Tuto1
        main.cpp
        #lcdrange.cpp
        #lcdrange.h
        )
     
    TARGET_LINK_LIBRARIES (
    	Tuto1
    	${QT_QTCORE_LIBRARY}
    	${QT_QTGUI_LIBRARY}
    	#$(QT_QTMAIN_LIBRARY)
    	)
    Merci d'avance pour toute aide

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 655
    Points : 188 665
    Points
    188 665
    Par défaut
    VC 6.0 n'est plus supporté par Qt, cela signifie qu'il ne fonctionnera plus certainement. Mais cela peut être possible.

    Ces erreurs me font penser à des librairies non-liées : pourquoi utilises-tu CMake ? Qt possède un outil, qmake, qui s'occupe, entre autres, de créer un Makefile, qui permet de compiler sans problème, en résolvant les problèmes de link contre Qt, en automatisant le passage au moc.

    Tes fichiers sont-ils bien tous passés par le moc ?
    Lies-tu bien avec QtCore4.lib et QtGui4.lib ?
    Apparemment, selon le CMake, oui... Mais, réellement, est-ce fait ? N'y a-t-il pas un bug reporté à ce sujet ?

    Pour la première erreur, ne déclares-tu pas deux fois le constructeur ?

    Pour les autres, es-tu sûr d'avoir bien implémenté ces trois fonctions ?

    À part ça, je ne vois plus qu'une source d'erreur : VC 6.0 n'est plus du tout supporté, même par les versions commerciales. Essaye avec une version précédente de Qt, antérieure à Qt4 (déjà avec certaines versions Qt3 posaient de gros problèmes...).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Citation Envoyé par dourouc05 Voir le message
    Tes fichiers sont-ils bien tous passés par le moc ?
    Non, c'est justement les messages d'erreurs classiques d'un "non-mocing"

    Pour solutionner:
    http://qtnode.net/wiki/Qt_with_cmake

  4. #4
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 38
    Points : 28
    Points
    28
    Par défaut Je suis sous VC++ 9
    Je suis désolé, je ne suis pas sous Visual C++ 6, mais 9 !! une petite erreur de typo, désolé

  5. #5
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 38
    Points : 28
    Points
    28
    Par défaut Solution trouvee
    Il fallait utiliser les fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #qt4_automoc( ... )
     
    QT4_WRAP_CPP(...)
    voici donc le Cmake gagnant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    PROJECT(Tuto1)
     
    CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
     
    add_definitions(${QT_DEFINITIONS})
     
    ADD_DEFINITIONS (-D_CRT_SECURE_NO_DEPRECATE -D_USE_MATH_DEFINES)
     
    FIND_PACKAGE(Qt4)
     
    INCLUDE(${QT_USE_FILE})
     
    #qt4_automoc( main.cpp lcdrange.cpp )
     
    QT4_WRAP_CPP(Tuto1_MOC_SRCS lcdrange.h)
     
    ADD_EXECUTABLE ( Tuto1
        main.cpp
        lcdrange.cpp
        #lcdrange.h
        ${Tuto1_MOC_SRCS}
        )
     
    TARGET_LINK_LIBRARIES (
    	Tuto1
    	${QT_QTCORE_LIBRARY}
    	${QT_QTGUI_LIBRARY}
    	#$(QT_QTMAIN_LIBRARY)
    	)
    Merci a tous pour vos reponse !

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

Discussions similaires

  1. Impossible de compiler une application android avec eclipse
    Par antoinegehin dans le forum Android
    Réponses: 0
    Dernier message: 15/05/2014, 23h48
  2. Réponses: 8
    Dernier message: 06/01/2013, 09h55
  3. Réponses: 3
    Dernier message: 26/01/2012, 18h56
  4. Réponses: 8
    Dernier message: 28/10/2010, 10h19
  5. Erreur sous visual C#
    Par Miko95 dans le forum C#
    Réponses: 8
    Dernier message: 04/11/2008, 08h56

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