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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Etudiant à l'ESGI
    Inscrit en
    mars 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Etudiant à l'ESGI
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mars 2015
    Messages : 13
    Points : 10
    Points
    10

    Par défaut Définition multiples des fonctions

    Bonjour à tous !!

    je viens à vous car après maintes recherches et nuit passée à régler mes soucis de compilation et librairie, j'ai un erreur que je n'arrive pas à résoudre.

    j'essais donc de compiler mon programme avec cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc  MainFile.c hash.c fileUpload.c IsGoodDate.c MysqlFile.c ParseFile.c token.c -o test1  pkg-config gtk+-3.0 --cflags pkg-config --libs gtk+-3.0 pkg-config gmodule-2.0 --libs pkg-config --libs --cflags libcurl  mysql_config --cflags --libs  -L/usr/lib -ljson-c -ljson-c -lcrypto -openssl
    et voici l'erreur que cela m'affiche :

    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
    /usr/bin/ld : /tmp/ccpuZpaH.o : dans la fonction « hash » :
    hash.c:(.text+0x0) : définitions multiples de « hash »; /tmp/cckWYEPx.o:MainFile.c:(.text+0xce6) : défini pour la première fois ici
    /usr/bin/ld : /tmp/cctpfqCQ.o : dans la fonction « uploadFile » :
    fileUpload.c:(.text+0xd2) : définitions multiples de « uploadFile »; /tmp/cckWYEPx.o:MainFile.c:(.text+0x505) : défini pour la première fois ici
    /usr/bin/ld : /tmp/ccjoqm9Z.o : dans la fonction « isObsolete » :
    IsGoodDate.c:(.text+0x0) : définitions multiples de « isObsolete »; /tmp/cckWYEPx.o:MainFile.c:(.text+0xe02) : défini pour la première fois ici
    /usr/bin/ld : /tmp/ccjoqm9Z.o : dans la fonction « isGoodDate » :
    IsGoodDate.c:(.text+0xce) : définitions multiples de « isGoodDate »; /tmp/cckWYEPx.o:MainFile.c:(.text+0xed0) : défini pour la première fois ici
    /usr/bin/ld : /tmp/ccjoqm9Z.o : dans la fonction « simple » :
    IsGoodDate.c:(.text+0x33d) : définitions multiples de « simple »; /tmp/cckWYEPx.o:MainFile.c:(.text+0x113f) : défini pour la première fois ici
    /usr/bin/ld : /tmp/ccrzKsK9.o : dans la fonction « mysql » :
    MysqlFile.c:(.text+0x0) : définitions multiples de « mysql »; /tmp/cckWYEPx.o:MainFile.c:(.text+0x9a7) : défini pour la première fois ici
    /usr/bin/ld : /tmp/ccbKNepj.o : dans la fonction « ParseJsonFile » :
    ParseFile.c:(.text+0x0) : définitions multiples de « ParseJsonFile »; /tmp/cckWYEPx.o:MainFile.c:(.text+0xd2) : défini pour la première fois ici
    /usr/bin/ld : /tmp/ccbKNepj.o : dans la fonction « writeFunction » :
    ParseFile.c:(.text+0x3df) : définitions multiples de « writeFunction »; /tmp/cckWYEPx.o:MainFile.c:(.text+0x4b1) : défini pour la première fois ici
    /usr/bin/ld : /tmp/ccIZeI7s.o : dans la fonction « main » :
    token.c:(.text+0x0) : définitions multiples de « main »; /tmp/cckWYEPx.o:MainFile.c:(.text+0x1e1c) : défini pour la première fois ici
    collect2: error: ld returned 1 exit status

    En vous remerciant !

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    7 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 7 092
    Points : 20 155
    Points
    20 155
    Billets dans le blog
    1

    Par défaut

    Bonjour
    Citation Envoyé par nashad Voir le message
    et voici l'erreur que cela m'affiche :
    D'après les messages, il semble que tes fonctions "hash", "uploadFile", "isObsolete" et toutes les autres citées sont définies plusieurs fois. Malheureusement sans le source...

    Il se peut que l'erreur vienne de compilations non terminées lors de tes divers essais. Essaye de supprimer tous tes ".o" et recompiler...
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    24 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 24 152
    Points : 176 986
    Points
    176 986
    Billets dans le blog
    46

    Par défaut

    Bonjour,

    Il se peut aussi qu'il n'y ai pas les garde sur les entêtes, du style : #pragma once.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Etudiant à l'ESGI
    Inscrit en
    mars 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Etudiant à l'ESGI
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mars 2015
    Messages : 13
    Points : 10
    Points
    10

    Par défaut

    Merci à vous ! du coup j'ai plus que quelque warning ! le problème venait des fichiers .c qui répétait le main, ou qui ne servait a rien, du coup un petit coup de clean et ça compile, par contre, je ne sais pas si je fais bien ma commande, mais je n'obtient aucun executable en passant cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc  MainFile.c hash.c fileUpload.c IsGoodDate.c MysqlFile.c ParseFile.c FirstTestParse.c  -o test1  `pkg-config gtk+-3.0 --cflags` `pkg-config --libs gtk+-3.0` `pkg-config gmodule-2.0 --libs` `pkg-config --libs --cflags libcurl`  `mysql_config --cflags --libs`  -L/usr/lib -ljson-c -ljson-c -lcrypto -openssl

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    7 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 7 092
    Points : 20 155
    Points
    20 155
    Billets dans le blog
    1

    Par défaut

    L'exécutable est sensé se nommer "test1". Donc soit il est créé, soit la compilation se termine en erreur et les erreurs s'affichent...
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  6. #6
    Membre à l'essai
    Homme Profil pro
    Etudiant à l'ESGI
    Inscrit en
    mars 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Etudiant à l'ESGI
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mars 2015
    Messages : 13
    Points : 10
    Points
    10

    Par défaut

    Alors mis à part un warning ( ce qui devrait normalement crée l'exécutable) je n'ai rien qui apparait..aucun fatal error rien..

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur
    Inscrit en
    août 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : août 2011
    Messages : 51
    Points : 134
    Points
    134

    Par défaut

    Bonjour,

    Es tu sur que la partie avec pkg-config est correcte ça peut vite être foireux si je me souvient bien.
    L'exécution de gcc ne retourne rien du tout du tout ?

  8. #8
    Membre à l'essai
    Homme Profil pro
    Etudiant à l'ESGI
    Inscrit en
    mars 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Etudiant à l'ESGI
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mars 2015
    Messages : 13
    Points : 10
    Points
    10

    Par défaut

    Bah écoute...honnêtement au point ou j'en suis, je sais pas du tout...je sais pas si je dois modifier ma ligne de compilation. j'ai essayer de rajouter des options en plus, mais rien de rien, aucun exécutable de crée.

  9. #9
    Membre habitué
    Homme Profil pro
    Développeur
    Inscrit en
    août 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : août 2011
    Messages : 51
    Points : 134
    Points
    134

    Par défaut

    Exécute dans un terminal ces commandes seules
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pkg-config --cflags gtk+-3.0
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pkg-config --libs gtk+-3.0
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_config --cflags --libs

  10. #10
    Membre à l'essai
    Homme Profil pro
    Etudiant à l'ESGI
    Inscrit en
    mars 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Etudiant à l'ESGI
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mars 2015
    Messages : 13
    Points : 10
    Points
    10

    Par défaut

    Voici le résultat de chaque commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    nashad@nashad-linux:~/Documents/FoodWasteApp$ pkg-config --cflags gtk+-3.0
    -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/libdrm -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/uuid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
     
    nashad@nashad-linux:~/Documents/FoodWasteApp$ ^C
     
    nashad@nashad-linux:~/Documents/FoodWasteApp$ pkg-config --libs gtk+-3.0
    -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0
     
     
    nashad@nashad-linux:~/Documents/FoodWasteApp$ mysql_config --cflags --libs
    -I/usr/include/mysql 
    -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -lrt -latomic -ldl

  11. #11
    Membre habitué
    Homme Profil pro
    Développeur
    Inscrit en
    août 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : août 2011
    Messages : 51
    Points : 134
    Points
    134

    Par défaut

    tu as deux -ljson-c dans ta ligne.
    Je suis étonné que dans pkg-config --libs gtk+-3.0 il n'y ai pas de -L du tout.

    Tu as essayé de compiler un projet GTK+ minimal (juste un main, avec que GTK+) ?

  12. #12
    Membre à l'essai
    Homme Profil pro
    Etudiant à l'ESGI
    Inscrit en
    mars 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Etudiant à l'ESGI
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mars 2015
    Messages : 13
    Points : 10
    Points
    10

    Par défaut

    Alors ! du coup je viens de faire un test avec un example de code minimal sur le site gtk gnome, et oui ça compile.

Discussions similaires

  1. Problème de compilation programme simple
    Par jbbaudouin35 dans le forum Débuter
    Réponses: 1
    Dernier message: 05/07/2012, 13h11
  2. Impossible de lancer mon programme, problème de compilation
    Par beegees dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/12/2008, 17h03
  3. Problème pour compiler un programme sous linux ?
    Par petitclem dans le forum Applications et environnements graphiques
    Réponses: 9
    Dernier message: 30/07/2008, 09h58
  4. Problème compilation programme
    Par leon_2 dans le forum Delphi
    Réponses: 5
    Dernier message: 25/07/2007, 16h36
  5. Réponses: 2
    Dernier message: 25/04/2007, 17h44

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