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

Qt Discussion :

erreur a la compilation


Sujet :

Qt

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 216
    Par défaut erreur a la compilation
    Bonjour,

    J'essaie de compiler un des exemples de la doc qt mais une erreur persiste à la compilation. Il s'agit de l'exemple --> Main Window --> Multiple document interface. Voici l'erreur.

    [Linker error] undefined reference to `qInitResources_mdi()'

    Pour info, j'ai fait un qmake -project puis un qmake dans le répertoire concerné. Puis j'ai fait qt-moc-ui qui m'a généré deux fichier moc. J'ai ensuite compiler a l'aide de devcpp
    quelqu'un sait d'ou l'erreur peut venir?

    Merci d'avance

  2. #2
    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
    Par défaut
    Salut,

    As-tu bien un fichier .qrc? Et une ligne dans le .pro du type: RESOURCES=application.qrc?
    Si oui, le makefile généré devrait automatiquement appeller le binaire rcc qui transformera le .qrc en .rcc.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 216
    Par défaut
    Oui j'ai bien un fichier mdi.qrc et dans mon fichier Projet.pro j'ai la ligne suivante
    RESOURCES += mdi.qrc

    donc ça devrait marcher, mais....non tjrs l'erreur

  4. #4
    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
    Par défaut
    Ce que je ne comprends pas, c'est ça: "Puis j'ai fait qt-moc-ui"
    C'est quoi et ça sort d'où?
    Normalement, un simple qmake -project && qmake (ce que tu as déjà donc fait) puis mingw32-make, devrait fonctionner. Je ne vois pas la place de qt-moc-ui

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 216
    Par défaut
    en fait si je fais pas: qt-moc-ui et que j'essaie de compiler j'ai des erreurs du type
    [Linker error] undefined reference to `vtable for MainWindow'
    [Linker error] undefined reference to `MainWindow::staticMetaObject'
    ...

    Alors j'ai chercher un peu sur le web et j'ai vu qu'on pouvait faire qt-moc-ui qui te génère deux fichiers dans ce cas ci :moc_mainwindow.cpp et moc_mdichild.cpp que j'ajoute ensuite au projet. Ensuite je compile avec devcpp.
    Avec d'autres exemples de la doc et en suivant le meme procédé ça marche.

    Si je tape comme tu dis: mingw32-make, il me dit que ça n'est pas reconnu en tant que commande interne ou externe...

  6. #6
    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
    Par défaut
    Ah ok, je viens de chercher ce que c'était... En fait tu passes pas vraiment par le système de qmake. Quand tu as le choix, ne le fait pas, et utilise le (sauf si tu maitrises un autre système, mais dans ton cas, le qt-moc-ui ne fait que son boulot, c'est à dire qu'il zappe allégrement les ressources, et j'imagine aussi les traductions).
    Dans ton dev-cpp, essaie autre chose: au lieu d'utiliser qt.mak (si je comprends bien, c'est ce que tu fais), coche la case "Utiliser le Makefile suivant etc...", et tu fais pointer ce champ vers le makefile créé à la suite de l'appel à qmake.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 216
    Par défaut
    J'ai essayer d'indiquer le makefile généré par qmake. J'ai maintenant l'erreur suivante

    Cannot find file 'images/copy.png'
    *** [release\qrc_mdi.cpp] Error 1

    bizarre...

  8. #8
    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
    Par défaut
    As-tu bien un répertoire en dessous de celui contenant le .pro s'appellant "images" et contenant copy.png?

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 216
    Par défaut
    effectivement je ne l'ai pas mais comment pourrais-je l'avoir alors ?

  10. #10
    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
    Par défaut
    Ben, je l'ai dans le répertoire de l'exemple:
    C:\Qt-4.2.2\examples\mainwindows\mdi\images\copy.png (et aussi dans la 4.1.3)

    Si tu ne l'as pas, c'est que ton archive de Qt est incompléte, je vois pas d'autres raisons :/

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 216
    Par défaut
    Sorry j'avais pas regardé ou il fallait. J'ai donc bien le fichier copy.png au bon endroit

  12. #12
    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
    Par défaut
    Bon, je sais plus où tu en est
    Je t'ai indiqué où le trouver, mais est-ce que tu compiles bien dans ce répertoire là? (enfin, juste au dessus de images )

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 216
    Par défaut
    oui j'ai bien le répertoire c'est bon. je compile comme tu m'as suggéré avec le makefile généré par qmake.
    J'ai maintenant une nouvelle erreur: cannot find -lqtmaind

  14. #14
    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
    Par défaut
    On avance...
    Ca c'est parce que Qt n'est compilé qu'en mode release. Tu peux soit compiler en mode release, soit construire les libs de debug.

    Pour construire les libs de debug, et si j'en crois Qt forum, tu aurais un fichier qtvars.bat dans le répertoire bin de Qt. Il te suffirait de l'appeller avec cet argument: compile_debug.

    Si ce n'est pas ça, tente de te mettre à la racine de Qt et tape:
    qmake && mingw32-make debug

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 216
    Par défaut
    Je n'arrive pas à effectuer la commande compile_debug sur le fichier qtvars.bat. J'ai ensuite fait la commande qmake && mingw32-make debug qui s'est correctement effectuée
    mais l'erreur persiste

  16. #16
    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
    Par défaut
    Et tu as quoi comme lib maintenant dans Qt\lib? Est-ce que tu as bien QtGui4.dll, QtGui4d.dll et toute les dlls en double à part ce 'd'?

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 216
    Par défaut
    dans Qt\lib j'ai un libGtGui4.a un QtGui.prl. Tu parles peut etre du répertoire bin dans ce cas j'ai bien QtGui4.dll, mais pas QtGui4d.dll

  18. #18
    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
    Par défaut
    Dans ce cas, la compilation debug des libs Qt ne s'est pas bien passée.
    Bon, alors, on va reprendre de 0, j'espère que t'as un peu de temps, ça va être long

    0. met le répertoire bin de mingw dans ton path utilisateur (si mingw32-make n'est toujours pas connu en dehors de dev-cpp, faut passer par là et te delogger/relogger, voire redémarrer si tu modifies le path système)
    1. ouvre une ligne de commande à la racine de Qt
    2. tape configure -debug-and-release <suivi des autres options que tu veux>
    3. si le configure s'est bien passé, tu peux taper mingw32-make, et c'est parti

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 216
    Par défaut
    Ok j'ai exécuter ces quelques lignes. Maintenant lorsque je compile, il me met:

    Entering directory `C:/Documents and Settings/...
    Nothing to be done for `all'.
    Leaving directory `C:/Documents and Settings/...


    puis ça s'arrete

  20. #20
    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
    Par défaut
    Oui, les espaces posent problèmes là. Met le dans un rep sans espace et tout ira mieux

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Tomcat][JSP] Erreur de génération /compilation
    Par kedare dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 20/02/2006, 09h21
  2. Réponses: 2
    Dernier message: 11/02/2006, 15h42
  3. Réponses: 6
    Dernier message: 21/11/2005, 13h40
  4. Réponses: 2
    Dernier message: 14/11/2005, 11h07
  5. Erreurs à la compilation
    Par Code source dans le forum GLUT
    Réponses: 11
    Dernier message: 02/05/2004, 19h33

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