Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de compilation avec Qt4

    31 juillet 2007 à 12:51:58

    Bonjour,

    Voila, j'ai installé Qt en suivant le tuto du site pour l'installer avec CodeBlocks.

    Après avoir lus les tutos fourni dans la doc, j'ai regardé les examples, en particulier le petit éditeur de texte qui se nomme "application".

    L'ennui, c'est que lorsque je compile, j'obtient cela :

    obj\Release\main.o:main.cpp:(.text+0x68): undefined reference to `qInitResources_application()'
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 36 seconds)
    1 errors, 0 warnings


    Je pense que cela vient du fichier .qrc car lorsque dans le main.cpp, je supprime la ligne :

    Q_INIT_RESOURCE(application);


    mon code compile à merveille et j'obtient un maaaaagnifique éditeur de texte sans les icones des boutons nouveau, enregistrer, copier, coller...etc :D

    J'ai beau chercher, je ne comprend pas mon erreur :(

    Pourriez vous m'aidez svp ?
    merci
    • Partager sur Facebook
    • Partager sur Twitter
      31 juillet 2007 à 13:04:48

      Bonjour,

      oui, il s'agit bien d'une problème de qrc.
      Pour corriger le problème, soit tu edites le fichier qrc_*****.cpp si tu utilises qt-prebuild soit plus simple, tu renommes le fichier application.qrc par resources.qrc et tu mets Q_INIT_RESOURCE(resources); à la place Q_INIT_RESOURCE(application)
      • Partager sur Facebook
      • Partager sur Twitter
        31 juillet 2007 à 13:35:59

        Merci de ton aide.

        J'ai essayé les deux méthodes mais j'ai toujour les même erreurs. :'(

        En revanche, lors de l'installation de Qt, j'ai eu le même problème que sur ce forum.
        J'y ai remédier de la même manière, c'est à dire en utilisant qt-moc-ui à la place de qt-prebuild.

        Je ne sais pas si mon problème vient de cela, mais je préfère le signaler. :p
        • Partager sur Facebook
        • Partager sur Twitter
          31 juillet 2007 à 21:49:16

          Citation : doc Qt

          void Q_INIT_RESOURCE ( name )

          Initializes the resources specified by the .qrc file with the specified base name. Normally, Qt resources are loaded automatically at startup. The Q_INIT_RESOURCE() macro is necessary on some platforms for resources stored in a static library.



          essaye en supprimant la macro.
          • Partager sur Facebook
          • Partager sur Twitter
            31 juillet 2007 à 23:08:10

            C'est bon, ça marche.

            J'ai cherché un peu et j'ai trouvé une discussion dans un forum.

            Ils disaient que pour compiler, il fallait créer un fichier .pro contenant le nom des fichiers du programme et le nom de l'executable. Puis, il fallait ouvrir l'invite de commande dans le dossier de Qt qui se nomme Qt 4.3.0 Command Prompt, aller dans le dossier de notre projet, taper qmake <lenomdenotrefichier .pro>, et make. :-°

            Ensuite, bein, on obtient l'executable dans un dossier "release" :p

            J'ai essayé, ça marche à merveille, mais je comprend pas très bien à quoi ça sert de compiller de cette manière o_O

            Je débute avec Qt, j'essai du mieux que je peux de progresser avec la doc mais j'ai un peu de mal avec l'anglais, pourriez vous m'expliquer un peu svp ?

            Merci

            Sinon, merci aussi à minirop pour sa réponse ^^
            • Partager sur Facebook
            • Partager sur Twitter
              1 août 2007 à 14:27:33

              il est préférable de compiler à la main tout programme utilisant Qt, les trucs comme qt-prebuild et qt-moc-ui appellent implicitement qmake et les autres programmes de Qt comme uic ou moc
              • Partager sur Facebook
              • Partager sur Twitter
                1 août 2007 à 15:13:16

                Ah d'accord, et à quoi sert le dossier "debug" présent dans le dossier de notre programme après la compilation ?
                • Partager sur Facebook
                • Partager sur Twitter
                  1 août 2007 à 15:38:55

                  contiendra le fichier généré en debug sinon release.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 août 2007 à 20:16:29

                    Bon, bein je crois que c'est tout :D

                    Merci beaucoup pour tes réponses ^^

                    • Partager sur Facebook
                    • Partager sur Twitter
                      2 août 2007 à 21:20:49

                      Euh, en fait, c'est pas tout :D

                      Voila, quand je veux compiler en mode debug, j'ai cette erreur :

                      g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
                      oc -mthreads -Wl -Wl,-subsystem,windows -o "debug\Writer.exe" debug\main.o debug
                      \mainwindow.o debug\moc_mainwindow.o debug\qrc_writer.o  -L"c:\Qt\4.3.0\lib" -lm
                      ingw32 -lqtmaind -lQtGuid4 -lQtCored4
                      C:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot fin
                      d -lqtmaind
                      collect2: ld returned 1 exit status
                      mingw32-make[1]: *** [debug\Writer.exe] Error 1
                      mingw32-make[1]: Leaving directory `C:/Documents and Settings/PropriÚtaire/Mes d
                      ocuments/Program/Writer'
                      mingw32-make: *** [debug] Error 2


                      Sur un forum, des gars disaient que c'était parce qu'il manquait des librairies qu'ils fallaient compiler grace à Qt 4.3.0 (Build Debug Librairies), présent dans le dossier Qt du menu démarrer. :-°

                      C'est ce que j'ai fais, et, après une bonne 1/2 heure d'attente,
                      j'ai obtenue ce message (à la fin):

                      Qt is now configured for building. Just run mingw32-make.
                      To reconfigure, run mingw32-make confclean and configure.

                      mingw32-make: *** No rule to make target `debug'.  Stop.


                      Sinon, j'ai réssayer, je ne peux toujours pas compiler en mode debug. :(

                      Pourriez-vous m'aider svp ?
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Problème de compilation avec Qt4

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown