J'ai un projet composé de deux fichiers, main.c et logoff.c. Lorsque je tente de les compiler je reçois cette erreur:Erreur étrange ld à propos du symbole en double
gcc -c -g -Wall main.c
gcc -c -g -Wall logoff.c
gcc -o main -g -Wall main.o logoff.o
ld: duplicate symbol _logoff in logoff.o and main.o
J'ai une fonction nommée dans logoff logoff.c, mais je l'ai recherché main.c pour le texte « Logoff » et ai rien trouvé (la fonction est pas encore appelé!).
Si je change le nom de la fonction en log_off cela fonctionne. Il y a une deuxième fonction dans le fichier qui provoque alors la même erreur à moins que son nom ne soit changé aussi.
Y a-t-il une raison pour que cela se produise? J'ai ce problème sur deux systèmes différents. Une chose qui pourrait être pertinente est que j'ai utilisé le même fichier logoff.c dans un autre projet mais il n'est pas connecté à celui-ci.
par curiosité, avez-vous #include logoff.c dans main.c? –
C'est votre problème alors. Déplacez les déclarations dans un fichier d'en-tête comme logoff.h et il se compilera correctement. –