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 :

Error multiple definition


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2009
    Messages : 24
    Par défaut Error multiple definition
    Bonjour,
    Je travaille sur un petit projet de C embarqué. Je souhaite communiquer avec une SD par l'intermédiaire d'un pic18. je débute en C et j'ai quelques difficultés, et notamment lors de la compilation.

    J'ai le message d'erreur suivant : Error - symbol 'FSInit' has multiple definitions.
    Cette fonction n'apparait que deux fois sur tout le projet, dans le .h ou elle est déclarée de la manière suivante :
    et dans un .c :
    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
    int FSInit(void)
    {
        int fIndex;
    	BYTE    gBufferZeroed = FALSE;
    	FSFILE * cwdptr = &cwd;
    #ifndef FS_DYNAMIC_MEM
        for( fIndex = 0; fIndex < FS_MAX_FILES_OPEN; fIndex++ )
            gFileSlotOpen[fIndex] = TRUE;
    #else
        #ifdef __18CXX
            SRAMInitHeap();
        #endif
    #endif
     
        gBufferZeroed = FALSE;
     
        MDD_InitIO();
     
        if(DISKmount(&gDiskData) == CE_GOOD)
        {
        // Initialize the current working directory to the root
    #ifdef ALLOW_DIRS
            cwdptr->dsk = &gDiskData;
            cwdptr->sec = 0;
            cwdptr->pos = 0;
            cwdptr->seek = 0;
            cwdptr->size = 0;
            cwdptr->name[0] = '\\';
            for (fIndex = 1; fIndex < 11; fIndex++)
            {
                cwdptr->name[fIndex] = 0x20;
            }
            cwdptr->entry = 0;
            cwdptr->attributes = ATTR_DIRECTORY;
            // "FatRootDirClusterValue" indicates the root
            cwdptr->dirclus = FatRootDirClusterValue;
            cwdptr->dirccls = FatRootDirClusterValue;
    #endif
     
            FSerrno = 0;
            return TRUE;
        }
     
        return FALSE;
    }
    J'aimerai savoir d'où peut provenir ce type d'erreur. J'espère vous avoir fourni les éléments nécessaires pour me répondre sinon n'hésitez pas à me demander plus d'information.
    Merci

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    C'est un message d'erreur du linker ou du compilateur ? On peut avoir le message d'erreur complet ?

    Quelques idées :
    • Le .obj qui est linké 2 fois dans le binaire final ?
    • le .c qui est inclus par #include quelque part ?
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2009
    Messages : 24
    Par défaut
    C'est un message d'erreur du linker et en effet j'avais inclus un .c,
    merci de me l'avoir fait remarquer je n'y avais pas fait attention.
    Maintenant j'ai le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Executing: "C:\MCC18\bin\mcc18.exe" -p=18F46K20 /i"C:\MCC18\h" "FSIO.c" -fo="FSIO.o" -D__DEBUG -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
    Executing: "C:\MCC18\bin\mcc18.exe" -p=18F46K20 /i"C:\MCC18\h" "main.c" -fo="main.o" -D__DEBUG -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
    Executing: "C:\MCC18\bin\mcc18.exe" -p=18F46K20 /i"C:\MCC18\h" "SD-SPI.c" -fo="SD-SPI.o" -D__DEBUG -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
    Executing: "C:\MCC18\bin\mplink.exe" /l"C:\MCC18\lib" /k"C:\MCC18\lkr" "18f46k20.lkr" "FSIO.o" "main.o" "SD-SPI.o" /u_CRUNTIME /u_DEBUG /o"sd.cof" /M"sd.map" /W
    MPLINK 4.30.01, Linker
    Copyright (c) 2009 Microchip Technology Inc.
    Error - could not find definition of symbol 'SRAMInitHeap' in file './FSIO.o'.
    Errors    : 1
    Une idée??

    PS : merci de ton aide

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2009
    Messages : 24
    Par défaut
    En fait j'ai résolu le problème.
    Merci de ton aide,

  5. #5
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par guilermo Voir le message
    ...et en effet j'avais inclus un .c,
    C'est pas beau d'inclure un .c
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

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

Discussions similaires

  1. Multiple definition error (link)
    Par SpongeBob dans le forum Débuter
    Réponses: 7
    Dernier message: 14/08/2008, 18h45
  2. Multiple definition
    Par vdumont dans le forum C++
    Réponses: 6
    Dernier message: 11/05/2006, 19h21
  3. multiple definition of operator<<...
    Par kleenex dans le forum C++
    Réponses: 3
    Dernier message: 05/05/2006, 02h56
  4. [LG]Interfaces et multiples définitions
    Par fatt dans le forum Langage
    Réponses: 2
    Dernier message: 15/04/2004, 22h41
  5. multiple definition
    Par scorbo dans le forum C
    Réponses: 5
    Dernier message: 10/09/2003, 13h16

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