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

C Discussion :

src/Entry.c:790: undefined reference to `PreparerContexte'


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut src/Entry.c:790: undefined reference to `PreparerContexte'
    bonjor, tous. j'ai un problème de link, pourtant j'ai bien inclu tous les fichiers!!!!
    le programme principal est:
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    .....
    #include "EFT_MOT.h"
    #include "Carte_ps.h"
    #include "cps.h"
     
    ......................
    INT16 SystemeLectureCPS(TCartePS *cps, UINT8 *CodePS)
    {
      unsigned char  stat;
      unsigned char cps_presente;
      unsigned short cr;
     
    	/*préparation du contexte*/
    	PreparerContexte();
     
    	/* Preparation du message de lecture de la carte CPS */
     
    	__usLgEmissMessage=EncapsulePssLectureCPS(__ucEmissMessage,CodePS);
     
    	/* Demande au gestionnaire d'executer l'ordre */
    	APPLI_Dialogue(__mynoappli,__ucEmissMessage,__usLgEmissMessage,__ucRecepMessage,&__usLgRecepMessage);
     
    	if (__ucRecepMessage[0] == 0x00)
    	{
    		/* sauvegarde donnees CPS */
    		TraiteReponseLectureCartePS(cps,__ucRecepMessage,__usLgRecepMessage);/*MAJ_Donnees_PS(ucRecepMessage, usLgRecepMessage);*/
    		return ERREUR_EI96_RETOUR_NORMAL;
    	}else{
    		RecupereContexte(__ucRecepMessage);
    		switch (__ucRecepMessage[1]){
    		case EP_ABS :
    			return ERREUR_EI96_CARTE_PS_ABSENTE;
    		case EP_BLOQ :
    			return ERREUR_EI96_CARTE_PS_BLOQUEE;
    		case EP_FAUX :
    			return ERREUR_EI96_CARTE_CODE_PORTEUR_FAUX;
    		case EP_INV :
    			return ERREUR_EI96_CARTE_PS_INVALIDE;
    		case EP_ARRAC :
    			return ERREUR_EI96_CARTE_PS_ARRACHEE;
    		case E_MESS_INCORR :
    			return ERREUR_EI96_MESSAGE_INCORRECT;
    		case E_LECT :
    			return ERREUR_EI96_PROBLEME_LECTEUR;
    		case E_TIME_OUT :
    			return ERREUR_EI96_DELAI_DE_FRAPPE_ATTEINT;
    		default:
    			return ERREUR_EI96_INCONNU;
    		} 
    	}
    }
    la prototype de la fonction PreparerContexte(), est dans le fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #ifndef _EFT_MOT_H
    #define _EFT_MOT_H
    #include "Nucleus.h"
    #define unsigned char TCartePS 
    void PreparerContexte(void);
    void RecupereContexte(UINT8 *buffer);
    void RecupereContexteWarning(UINT8 *buffer);
    UINT16 RemplitContexte(UINT8 *buffer, UINT16 lg,UINT8 *CodePS);
    #endif
    et la définition de la fonction est dans le fichier EFT_MOT.c
    et la message d'erreur est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    src/Entry.c:790: undefined reference to `PreparerContexte'
    quelqu'un voix la faille?
    merci pour votre aide

  2. #2
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    je dis peut etre une betise, mais si le corps de la fonction est ailleurs, il faut mettre un extern qqpart !

  3. #3
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Comme tu l'ecris, les 'undefined reference' ne sont pas des erreurs de compilation mais d'edition de lien. Donc rien a voir avec une erreur dans le code source (sauf si le nom de la fonction est mal orthographie, par exemple). Lorsque tu construis l'executable final, l'editeur de lien a besoin de connaitre le code compile de toutes les fonctions appelees. Assure toi que le fichier object EFT_MOT.o est construit et pris en compte lors de l'edition de lien -- i.e. verifie ton Makefile.

    Et enleve cet affreux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #define unsigned char TCartePS
    et remplace le par un typedef.

Discussions similaires

  1. winsock.h : undefined reference...
    Par abraxas dans le forum Dev-C++
    Réponses: 14
    Dernier message: 06/08/2012, 13h42
  2. Undefined reference compilation réseau
    Par Ren97 dans le forum Dev-C++
    Réponses: 11
    Dernier message: 08/03/2005, 09h46
  3. Compilation de xmms : undefined reference to...
    Par Michaël dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 04/02/2005, 19h05
  4. undefined reference to `xmlParseFile'
    Par Clemaster dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 25/06/2004, 20h38
  5. g++ : undefined reference to ...
    Par le_barbu dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 14/05/2004, 07h23

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