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 de compilation avec Makefile


Sujet :

Qt

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 115
    Points : 45
    Points
    45
    Par défaut Erreur de compilation avec Makefile
    Bonjour,

    Je compile un programme C++ à l'aide d'un Makefile.

    Lorsque je compile, j'obtiens le message d'erreur 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
    c:\dev\serveur2>mingw32-make
    g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
    oc -Wl,-s -Wl,-subsystem,console -mthreads -Wl -o bin/server.exe build/modbus.o
    build/moc_server.o build/server.o build/main.o -L"C:\Qt\2010.05\qt\lib" -lQtNetw
    ork4 -lQtCore4
    build/main.o:main.cpp:(.text+0x1c): référence indéfinie vers « __gxx_persona
    lity_sj0 »
    build/main.o:main.cpp:(.text+0x41): référence indéfinie vers « _Unwind_SjLj_
    Register »
    build/main.o:main.cpp:(.text+0xe3): référence indéfinie vers « _Unwind_SjLj_
    Unregister »
    build/main.o:main.cpp:(.text+0x151): référence indéfinie vers « _Unwind_SjLj
    _Resume »
    collect2: ld returned 1 exit status
    mingw32-make: *** [bin/server.exe] Error 1
    Pour moi, ces erreurs sont du à l'absence d'une librairie, mais je ne sais pas laquelle.

    Merci pour l'aide que vous pourrez m'apporter concernant ces erreurs.

    Bonne journée.

    30avril1989

  2. #2
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Si tu utilises Qt utilises plutôt la commande qmake :
    voir doc : http://qt.developpez.com/doc/latest/qmake-manual/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 115
    Points : 45
    Points
    45
    Par défaut
    Merci pour ta réponse superjaja!

    La compilation se fait correctement vu qu'un fichier exécutable est créé!

    Mais lorsque je veux exécuter ce fichier, j'obtiens l'erreur suivante:

    "Cette application n'a pas pu démarrer car libgcc_s_dw2-1.dll est introuvable. La réinstallation de cette application peut corriger ce problème."

    Après vérification, la dll est bien présente.

    Merci pour l'aide que vous pourrez m'apporter.

    30avril1989

  4. #4
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Quand il manque des dll, il faut soit modifier la variable PATH de ton système pour indiquer le répertoire des libs de Qt (conseillé), soit copier les dll dans le même répertoire que ton exécutable.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 115
    Points : 45
    Points
    45
    Par défaut
    Merci pour ta réponse YoniBlond.

    Je ne vois pas comment modifier la variable PATH.

    Donc j'ai commencé à copier les dll dans le même répertoire que mon exécutable, mais vu qu'il y en a un certains nombre, j'aimerai que l'on m'explique comment modifier la variable PATH.

    Merci pour l'aide que vous pourrez m'apporter

    30avril1989

  6. #6
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Ça dépend de ton système d'exploitation, si tu cherches un peu sur internet tu trouveras toutes les explications que tu veux sur PATH et comment le modifier.

    Cela dit, si tu utilises QtCreator, à partir de la version 2 il est possible de modifier les variables d'environnement (dont PATH) uniquement pour exécuter tes projets donc sans changer le système (enfin seulement temporairement). Mais je suppose que tu ne l'utilises pas, sinon tu ne devrais pas avoir ces problèmes.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 115
    Points : 45
    Points
    45
    Par défaut
    Et bien non, je n'utilise pas Qt mais Code Blocks.

    Je fais des recherches sur PATH.

    Merci pour votre aide.

    30avril1989

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 115
    Points : 45
    Points
    45
    Par défaut
    Voici les messages que j'obtiens lors de la compilation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    mingw32-make -f Makefile.Debug
    mingw32-make[1]: Entering directory `c:/dev/serveur2/src'
    mingw32-make[1]: Nothing to be done for `first'.
    mingw32-make[1]: Leaving directory `c:/dev/serveur2/src'
    Est-ce des message d'erreurs?

    J'ai quand même essayé d'exécuter mon exécutable: aucun message d'erreur mais rien ne se passe.

    Merci pour l'aide que vous pourrez m'apporter.

    30avril1989

  9. #9
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Nothing to be done signifie qu'il n'y a rien à faire, que tu n'as pas modifié ton code source depuis la dernière compilation et que donc ton exécutable est normalement à jour. Si tu veux forcer la compilation, supprime les fichiers objets .o (en général les makefile ont une règle clean qui s'occupe de ça).

    Si tu n'as aucun message d'erreur, c'est que ton programme se lance sans problème, donc au niveau des dll (et/ou du PATH) c'est bon. Maintenant c'est à toi de déboguer ton programme, je te conseille de l'exécuter depuis une console pour avoir les éventuels messages d'erreur affichés.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 115
    Points : 45
    Points
    45
    Par défaut
    Pour l'exécuter depuis une console, il faudrait que je sois sous Linux?

    J'ai donc compilé mon fichier main.cpp avec Code Blocks, et j'ai obtenu une vingtaine d'erreurs? Est-ce normal?

    Les premières erreurs sont:

    QtCore: No such file or directory
    QtCoreApplication: No such file or directory

    Merci pour l'aide que vous pourrez m'apporter!

    30avril1989

  11. #11
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Non, Windows aussi a une console : cmd.exe
    Si tu as installé Mingw je crois qu'il y a aussi un programme de console fourni avec.

    Je ne connais pas codeblocks, mais compiler du Qt ne se fait pas comme du C++ standard, donc tu ferais mieux de le faire toi même dans une console.

Discussions similaires

  1. Erreur compilation avec Makefile
    Par 30avril1989 dans le forum Systèmes de compilation
    Réponses: 0
    Dernier message: 24/03/2011, 15h33
  2. Erreur de compilation avec APRO
    Par netchip dans le forum Langage
    Réponses: 1
    Dernier message: 22/04/2006, 23h12
  3. Erreur de compil avec Outp
    Par sixon dans le forum C++
    Réponses: 2
    Dernier message: 27/02/2006, 15h01
  4. Erreur de compilation avec SWITCH et CASE
    Par barbarello dans le forum C++
    Réponses: 4
    Dernier message: 21/01/2006, 21h47
  5. [FreePascal]Erreur de compilation avec Dev-Pascal
    Par youngeikichi dans le forum Free Pascal
    Réponses: 3
    Dernier message: 17/02/2005, 14h22

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