Bonjour,

j'effectue la maintenance d'une bibliothèque écrit en C. J'utilise le compilateur de chez SUN "WorkShop Compilers 5.0 98/12/15 C 5.0" avec qui je n'ai pas de problème de compilation.

Pour des raisons pratiques, je préfère effectuer les tests sur ma machine tournant sous Windows XP Pro. J'ai installé Cygwin et le compilateur gcc "
gcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)".

Malheureusement, je n'arrive pas à compiler un module avec la commande "gcc -o testword -O2 -Wall -std=gnu99 -pedantic utils.c word.c testword.c"
car un fichier d'en-tête contient le code suivant:

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
 
typedef char*          pchar;
typedef unsigned char  byte;
typedef byte*          pbyte;
#if defined(_WINDOWS) || defined(_WIN32) 
typedef unsigned int   uint;
typedef unsigned short ushort;
typedef unsigned long  ulong;
#elif defined(__hpux)
#include <sys/types.h>
typedef unsigned long  ulong;
#else
#include <sys/types.h>
#endif
typedef uint*          puint;
typedef ushort*        pushort;
typedef ulong *        pulong; // Ligne 114
Message du compilateur
In file included from utils.c:38:
utils.h:114: error: parse error before '*' token
utils.h:114: warning: type defaults to `int' in declaration of `pulong'
utils.h:114: error: ISO C forbids data definition with no type or storage class
word.c: In function `WordTrans':
word.c:176: warning: implicit declaration of function `GetLock'
word.c:176: error: `TIMEOUT_INFINITE' undeclared (first use in this function)
word.c:176: error: (Each undeclared identifier is reported only once
word.c:176: error: for each function it appears in.)
word.c:182: warning: implicit declaration of function `ReleaseLoc
Semble-t-il que gcc ne connait pas le type ulong.

Je vous demande si effectivement le type ulong n'est pas supporté par C99 et s'il existe une parade à mon petit problème.

Merci d'avance pour vos réponses.