p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Membre habitué
    Inscrit en
    décembre 2005
    Messages
    248
    Détails du profil
    Informations forums :
    Inscription : décembre 2005
    Messages : 248
    Points : 112
    Points
    112

    Par défaut [gcc] problème linker

    Bonjour,

    J'essaie de me mettre au C et j'ai quelques problème de démarrage.
    Je suis sous windows, j'ai installé mingw.
    J'arrive à compiler mes fichiers .c avec la commande J'arrive à créer un exe avec la commande Le tout avec un fichier très simple.
    Maintenant je voudrais utiliser un fichier.c qui fait appelle à une librairie ajouté. J'ai un fichier.lib est une dll.
    quand je passe les commandes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -o monexe.exe monchier.c
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -o monexe.exe -I"C:\WINDWS\system32" monchier.c
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -o monexe.exe -L"Chemin du fichier.lib" monchier.c
    j'ai comme réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    undefined reference to la fonction
    J'ai lu sur le web que c'était un problème de linker mais je n'ai pas trouvé comment indiquer la référence correctement.

    merci d'avance.

  2. #2
    Membre habitué
    Inscrit en
    décembre 2005
    Messages
    248
    Détails du profil
    Informations forums :
    Inscription : décembre 2005
    Messages : 248
    Points : 112
    Points
    112

    Par défaut

    bonjour,

    ça sera peut être plus explicite avec la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -o monexe.exe -I"C:\WINDOWS\system32" fichier.c -W -Wall -ansi -pedantic
    voici la réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    In file included from p16R16.H :2
                                      from fichier.c:6:
    C:/mingw/bin/................/include/stdlib.h:317:error:syntax error before "double"
    fichier.c: In fonction 'main' :
    fichier.c:23 warning: implicit declaration of fonction 'clrscr'
    fichier.c:23: error syntax error before '/' token
    fichier.c:38 warning: comparison between signed and unsigned
    fichier.c:92 warning:  implicit declaration of fonction 'delay'
    fichier.c:92: error syntax error before '/' token
    fichier.c:97: error syntax error before '/' token
    fichier.c:102: error syntax error before '/' token
    fichier.c:107: error syntax error before '/' token
    fichier.c:10 warning: unused variable 'j'

  3. #3
    Membre Expert
    Inscrit en
    mars 2005
    Messages
    865
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 865
    Points : 1 063
    Points
    1 063

    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -o monexe.exe -I"C:\WINDOWS\system32" fichier.c -W -Wall -ansi -pedantic
    Ca m'inquiète que tu sois obligé d'aller chercher des headers dans C:\WINDOWS\system32. Tu es sûr de ton coup ?


    Je décode le reste. Pour le moment, ce ne sont pas des erreurs de compil' mais des erreurs de link.

    >In file included from p16R16.H :2
    > from fichier.c:6:
    >C:/mingw/bin/................/include/stdlib.h:317:error:syntax error before >"double"
    Hum... ça ne sent vraiment pas bon. Une erreur de compil' dans les headers standards. Il faudrait voir tes fichiers...

    >fichier.c: In fonction 'main' :
    >fichier.c:23 warning: implicit declaration of fonction 'clrscr'
    clrscr est une fonction de la bibliothèque conio.
    Tu dois inclure conio.h.
    Tu trouveras plus d'infos ici http://conio.sourceforge.net/

    > fichier.c:23: error syntax error before '/' token
    Erreur de compilation... à corriger bien évidemment.

    > fichier.c:38 warning: comparison between signed and unsigned
    > fichier.c:92 warning: implicit declaration of fonction 'delay'
    Ouais... je ne sais pas trop. Tu dois avoir récupéré du C pour Turbo C.

    fichier.c:92: error syntax error before '/' token
    fichier.c:97: error syntax error before '/' token
    fichier.c:102: error syntax error before '/' token
    fichier.c:107: error syntax error before '/' token
    fichier.c:10 warning: unused variable 'j'


    A la lecture des erreurs, j'ai l'impression que tu as récupéré un cours s'appuyant sur Turbo C. Certaines fonctions proposées par Turbo C, comme delay, ne sont pas disponibles sur mingw, qui est plus soucieux des standards. D'où vient ce cours et de quand date t'il ?

    Je te conseille de jeter un coup d'oeil aux cours de developpez.com
    http://c.developpez.com/cours/

  4. #4
    Membre Expert
    Inscrit en
    mars 2005
    Messages
    865
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 865
    Points : 1 063
    Points
    1 063

    Par défaut

    Après avoir rapidement googlelisé; j'ai découvert que P16R16.h était un fichier en relation avec le développement de cartes PCI sous Turbo C.
    Tu fais de l'électronique ?

  5. #5
    Membre habitué
    Inscrit en
    décembre 2005
    Messages
    248
    Détails du profil
    Informations forums :
    Inscription : décembre 2005
    Messages : 248
    Points : 112
    Points
    112

    Par défaut

    salut,

    bon tu as vu juste! je croyais que le turbo C était compatible avec le C.

    En ce qui concerne mon projet, je dois réaliser une JNI pour intégrer une carte PCI, en l'occurence PCI-P8R8, dans le code java d'une application. Et évidemment je code en java et pas en C.

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

Discussions similaires

  1. GCC : problème de librairies...
    Par Pico10 dans le forum Outils pour C & C++
    Réponses: 10
    Dernier message: 11/07/2007, 22h05
  2. gcc : problème d'exécution
    Par Anouschka dans le forum C
    Réponses: 5
    Dernier message: 07/06/2006, 15h42
  3. [libcroco & gcc] Problème de compilation
    Par ShootDX dans le forum Outils pour C & C++
    Réponses: 1
    Dernier message: 25/05/2006, 23h08
  4. Problème linker Dev-C++ sockets ws2_32
    Par Alp dans le forum Dev-C++
    Réponses: 3
    Dernier message: 07/04/2006, 18h03
  5. [GCC] Problème d'installation windows
    Par gl0be dans le forum Outils pour C & C++
    Réponses: 2
    Dernier message: 13/09/2004, 11h26

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