Erreur lors de la compilation en c

Résolu/Fermé
compilateurc Messages postés 24 Date d'inscription vendredi 25 décembre 2009 Statut Membre Dernière intervention 27 février 2012 - 24 févr. 2012 à 16:20
compilateurc Messages postés 24 Date d'inscription vendredi 25 décembre 2009 Statut Membre Dernière intervention 27 février 2012 - 27 févr. 2012 à 16:08
Bonjour,
J'essaye de compiler mon code en c sous linux et il me renvoie l'erreur suivante:

/usr/bin/ld: errno: TLS definition in /lib/i386-linux-gnu/libc.so.6 section .tbss mismatches non-TLS reference in /tmp/ccAmLkoJ.o
/lib/i386-linux-gnu/libc.so.6: could not read symbols: Bad value
collect2: ld a retourné 1 code d'état d'exécution

Quel peut être l'origine du problème?
La commande utilisée pour la compilation est belle et bien: gcc programme.c -o programme
Merci d'avance

3 réponses

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 29/02/2012 à 21:50
Remplace la ligne extern errno; par un #include <errno.h>
Johan
Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin)
1
compilateurc Messages postés 24 Date d'inscription vendredi 25 décembre 2009 Statut Membre Dernière intervention 27 février 2012 1
24 févr. 2012 à 16:33
Voici le code source en c:

#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
extern errno;
int main(void)
{
pid_t pid;
if((pid=fork())==-1)
{
fprintf(stderr,"Le processus s'est terminé avec l'erreur %d",errno);
exit(1);}
printf("Le père et le fils affichent");
if(pid==0)
{
printf("Le fils fonctionne");
}
else
{
printf("Le père fonctionne");
}
return 0;
}
0
compilateurc Messages postés 24 Date d'inscription vendredi 25 décembre 2009 Statut Membre Dernière intervention 27 février 2012 1
27 févr. 2012 à 16:08
Merci Johan ça marche parfaitement. #include<errno.h> est pur
0