Bonjour,

Je travaille sur une Centos 4 et j'essaie de compiler une bibliothèque (la dernière version de la libmnl). Après quelques manips pour résoudre des messages d'erreur, je tombe sur le message cité en titre.
Trouvant étrange qu'il ne reconnaisse pas le size_t, je teste avec un petit executable:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
 
int
main (int argc,
      char *argv[])
{
  size_t s;
  s = sizeof (long);
  printf ("Taille d'un long: %ul\n", s);
  return 0;
}
Mais rien à faire. Le compilateur gcc me retourne une tétrachiée de messages d'erreur.

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
[root@localhost libmnl]# gcc -g -o /tmp/p /tmp/p.c
In file included from /usr/include/_G_config.h:44,
                 from /usr/include/libio.h:32,
                 from /usr/include/stdio.h:72,
                 from /tmp/p.c:1:
/usr/include/gconv.h:72: erreur: erreur de syntaxe avant « size_t »
/usr/include/gconv.h:88: erreur: erreur de syntaxe avant « size_t »
/usr/include/gconv.h:97: erreur: erreur de syntaxe avant « size_t »
/usr/include/gconv.h:174: erreur: erreur de syntaxe avant « size_t »
/usr/include/gconv.h:177: erreur: erreur de syntaxe avant un élément lexical « } »
In file included from /usr/include/libio.h:32,
                 from /usr/include/stdio.h:72,
                 from /tmp/p.c:1:
/usr/include/_G_config.h:47: erreur: champ « __cd » est de type incomplet
/usr/include/_G_config.h:50: erreur: champ « __cd » est de type incomplet
In file included from /usr/include/stdio.h:72,
                 from /tmp/p.c:1:
/usr/include/libio.h:328: erreur: erreur de syntaxe avant « size_t »
/usr/include/libio.h:332: erreur: « size_t » non déclaré ici (hors de toute fonction)
/usr/include/libio.h:334: erreur: erreur de syntaxe avant un élément lexical « } »
/usr/include/libio.h:360: erreur: erreur de syntaxe avant « size_t »
/usr/include/libio.h:369: erreur: erreur de syntaxe avant « size_t »
/usr/include/libio.h:485: erreur: erreur de syntaxe avant « _IO_sgetn »
/usr/include/libio.h:485: erreur: erreur de syntaxe avant « size_t »
In file included from /tmp/p.c:1:
/usr/include/stdio.h:304: erreur: erreur de syntaxe avant « size_t »
/usr/include/stdio.h:311: erreur: erreur de syntaxe avant « size_t »
/usr/include/stdio.h:353: erreur: erreur de syntaxe avant « size_t »
/usr/include/stdio.h:357: erreur: erreur de syntaxe avant « size_t »
/usr/include/stdio.h:605: erreur: erreur de syntaxe avant « fread »
/usr/include/stdio.h:605: erreur: erreur de syntaxe avant « size_t »
/usr/include/stdio.h:611: erreur: erreur de syntaxe avant « fwrite »
/usr/include/stdio.h:611: erreur: erreur de syntaxe avant « size_t »
/usr/include/stdio.h:633: erreur: erreur de syntaxe avant « fread_unlocked »
/usr/include/stdio.h:633: erreur: erreur de syntaxe avant « size_t »
/usr/include/stdio.h:635: erreur: erreur de syntaxe avant « fwrite_unlocked »
/usr/include/stdio.h:635: erreur: erreur de syntaxe avant « size_t »
In file included from /tmp/p.c:3:
/usr/include/string.h:39: erreur: erreur de syntaxe avant « size_t »
/usr/include/string.h:43: erreur: erreur de syntaxe avant « size_t »
/usr/include/string.h:52: erreur: erreur de syntaxe avant « size_t »
/usr/include/string.h:59: erreur: erreur de syntaxe avant « size_t »
/usr/include/string.h:62: erreur: erreur de syntaxe avant « size_t »
/usr/include/string.h:66: erreur: erreur de syntaxe avant « size_t »
/usr/include/string.h:88: erreur: erreur de syntaxe avant « size_t »
/usr/include/string.h:96: erreur: erreur de syntaxe avant « size_t »
/usr/include/string.h:102: erreur: erreur de syntaxe avant « size_t »
/usr/include/string.h:109: erreur: erreur de syntaxe avant « strxfrm »
/usr/include/string.h:110: erreur: erreur de syntaxe avant « size_t »
/usr/include/string.h:184: erreur: erreur de syntaxe avant « strcspn »
/usr/include/string.h:188: erreur: erreur de syntaxe avant « strspn »
/usr/include/string.h:242: erreur: erreur de syntaxe avant « strlen »
/usr/include/string.h:281: erreur: erreur de syntaxe avant « size_t »
/usr/include/string.h:288: erreur: erreur de syntaxe avant « size_t »
/usr/include/string.h:292: erreur: erreur de syntaxe avant « size_t »
/usr/include/string.h:296: erreur: erreur de syntaxe avant « size_t »
/usr/include/string.h:299: erreur: erreur de syntaxe avant « size_t »
/usr/include/string.h:329: erreur: erreur de syntaxe avant « size_t »
In file included from /tmp/p.c:4:
/usr/include/stdlib.h:140: erreur: erreur de syntaxe avant « __ctype_get_mb_cur_max »
In file included from /usr/include/sys/types.h:133,
                 from /usr/include/stdlib.h:433,
                 from /tmp/p.c:4:
/usr/include/linux/time.h:10: erreur: erreur de syntaxe avant « time_t »
/usr/include/linux/time.h:12: erreur: erreur de syntaxe avant un élément lexical « } »
/usr/include/linux/time.h:18: erreur: erreur de syntaxe avant « time_t »
/usr/include/linux/time.h:44: erreur: champ « it_interval » est de type incomplet
/usr/include/linux/time.h:45: erreur: champ « it_value » est de type incomplet
/usr/include/linux/time.h:49: erreur: champ « it_interval » est de type incomplet
/usr/include/linux/time.h:50: erreur: champ « it_value » est de type incomplet
In file included from /usr/include/sys/select.h:46,
                 from /usr/include/sys/types.h:216,
                 from /usr/include/stdlib.h:433,
                 from /tmp/p.c:4:
/usr/include/bits/time.h:70: erreur: nested redefinition of `struct timeval'
In file included from /usr/include/sys/types.h:266,
                 from /usr/include/stdlib.h:433,
                 from /tmp/p.c:4:
/usr/include/bits/pthreadtypes.h:48: erreur: erreur de syntaxe avant « size_t »
/usr/include/bits/pthreadtypes.h:51: erreur: erreur de syntaxe avant « __stacksize »
In file included from /tmp/p.c:4:
/usr/include/stdlib.h:450: erreur: erreur de syntaxe avant « size_t »
/usr/include/stdlib.h:480: erreur: erreur de syntaxe avant « size_t »
/usr/include/stdlib.h:584: erreur: erreur de syntaxe avant « __size »
/usr/include/stdlib.h:586: erreur: erreur de syntaxe avant « __nmemb »
/usr/include/stdlib.h:595: erreur: erreur de syntaxe avant « size_t »
In file included from /usr/include/stdlib.h:606,
                 from /tmp/p.c:4:
/usr/include/alloca.h:33: erreur: erreur de syntaxe avant « __size »
In file included from /tmp/p.c:4:
/usr/include/stdlib.h:611: erreur: erreur de syntaxe avant « __size »
/usr/include/stdlib.h:768: erreur: erreur de syntaxe avant « size_t »
/usr/include/stdlib.h:773: erreur: erreur de syntaxe avant « size_t »
/usr/include/stdlib.h:846: erreur: erreur de syntaxe avant « size_t »
/usr/include/stdlib.h:849: erreur: erreur de syntaxe avant « size_t »
/usr/include/stdlib.h:853: erreur: erreur de syntaxe avant « size_t »
/usr/include/stdlib.h:857: erreur: erreur de syntaxe avant « size_t »
/usr/include/stdlib.h:866: erreur: erreur de syntaxe avant « size_t »
/usr/include/stdlib.h:869: erreur: erreur de syntaxe avant un élément lexical /usr/include/stdlib.h:869: erreur: erreur de syntaxe avant un élément lexical « * »
/usr/include/stdlib.h:873: erreur: erreur de syntaxe avant « wchar_t »
/usr/include/stdlib.h:877: erreur: erreur de syntaxe avant « mbstowcs »
/usr/include/stdlib.h:877: erreur: erreur de syntaxe avant un élément lexical « * »
/usr/include/stdlib.h:880: erreur: erreur de syntaxe avant « wcstombs »
/usr/include/stdlib.h:881: erreur: erreur de syntaxe avant un élément lexical « * »
/tmp/p.c: In function `main':
/tmp/p.c:10: erreur: erreur de syntaxe avant « s »
/tmp/p.c:11: erreur: « s » non déclaré (première utilisation dans cette fonction)
/tmp/p.c:11: erreur: (Chaque identificateur non déclaré est rapporté une seule fois
/tmp/p.c:11: erreur: pour chaque fonction dans laquelle il apparaît.)
/tmp/p.c: At top level:
/usr/include/gconv.h:176: attention : on assume que le tableau « __data » n'a qu'un seul élément
Est-ce que vous savez pourquoi?

Merci

PS:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
uname -r => 2.6.9-103.EL