Re: XCode C99 : duplicate symbol

Liste des GroupesRevenir à fcl c 
Sujet : Re: XCode C99 : duplicate symbol
De : kurtzlepirate (at) *nospam* free.fr (kurtz le pirate)
Groupes : fr.comp.lang.c
Date : 22. Apr 2022, 20:13:17
Autres entêtes
Organisation : Compagnie de la Banquise
Message-ID : <6262f03d$0$26322$426a34cc@news.free.fr>
References : 1 2
User-Agent : Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:78.0) Gecko/20100101 Thunderbird/78.14.0
On 22/04/2022 12:30, Olivier Miakinen wrote:
Bonjour,
 
Le 19/04/2022 à 10:26, kurtz le pirate a écrit :
Bonjour,
>
Si de vieux dinosaures passent par la...
 
Plutôt que de chercher des dinosaures sur un groupe Mac, pourquoi
ne pas poser la question sur le groupe où c'est en charte ? Je fais
suivre.

parceque XCode = Mac ;)


Dans mon projet, j'ai ces fichiers :
 a_structures.h
 a_toolbox.h
 a_toolbox.c
 a_m.h
 a_m.c
 main.c
>
Le fichier a_structures.h ne contient que des définitions de structures.
>
Dans main.c j'ai :
 #include "a_structures.h"
 #include "a_toolbox.h"
 #include "a_m.h"
>
>
J'ai un tableau de chaines :
 const char * DaysNames[] = {
"Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi" };
>
que j'utilise dans le main.c :
 printf("  Le 30/6/1954 est un %s (%d)\n", DaysNames[dayofweek], dayofweek);
>
>
>
Si le tableau est déclaré dans le main.c pas de problème.
 
Tel que tu l'as écrit, il n'est pas seulement déclaré mais défini.

oui, déclaré ET défini. j'ai écris trop vite.

>
Si le tableau est déclaré dans le a_structures.h, le compilateur sort
une erreur :
duplicate symbol _DaysNames in:
 /Users/.../main.o
 /Users/.../a_m.o
 /Users/.../a_toolbox.o
>
Et la je ne comprends plus...
Si vous avez une idée. Merci d'avance.
 
Parce qu'en le mettant dans un .h inclus dans différents .c, tu le
redéfinis dans chacun des .c .

oui... mais non. dans mes .c, je n'ai pas de #include "a_structures.h"
les #include ne sont que dans les .h


Plusieurs solutions possibles : soit tu le définis en 'static', auquel
cas chaque .c aura sa propre copie du tableau, soit tu le déclares
uniquement dans le .h et tu le définis dans un seul .c .

je vais regarder du coté de 'static'.
j'ai vu aussi un pragma 'once'.

merci pour la piste.


--
kurtz le pirate
compagnie de la banquise





--
kurtz le pirate
compagnie de la banquise

Date Sujet#  Auteur
22 Apr 22 * Re: XCode C99 : duplicate symbol3Olivier Miakinen
22 Apr 22 `* Re: XCode C99 : duplicate symbol2kurtz le pirate
23 Apr 22  `- Re: XCode C99 : duplicate symbol1Olivier Miakinen

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal