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 int FSInit(void);
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.
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; }
Merci
Partager