IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

[C99] type ulong non reconnu


Sujet :

C

  1. #1
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut [C99] type ulong non reconnu
    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.

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Lors de la compilation, tu es donc dans le troisième cas de ta compilation conditionnelle, et la norme POSIX n'exige pas que sys/types.h définisse ulong.

  3. #3
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 89
    Points : 91
    Points
    91
    Par défaut
    Rajoute :
    typedef unsigned long ulong

    juste avant la ligne 114 non ?

    et ce n'est pas C99 (ni C90).


    edit:
    dans mon sys/types.h j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #ifdef __USE_MISC
    /* Old compatibility names for C types.  */
    typedef unsigned long int ulong;
    typedef unsigned short int ushort;
    typedef unsigned int uint;
    #endif
    donc si tu veux pas rajouter du code essaie peut être en ajoutant l'option -D__USE_MISC à gcc.


  4. #4
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Merci pour vos réponses.


    Je retourne sous mon SUN au moins lui il comprend mes ulongs .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Type DataObject non reconnu
    Par Le Sage dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/11/2012, 16h34
  2. Type MIME non reconnu
    Par Shin_RockmanX dans le forum Apache
    Réponses: 1
    Dernier message: 01/06/2008, 21h16
  3. Type Text non reconnu dans Delphi
    Par dimi2 dans le forum Langage
    Réponses: 7
    Dernier message: 19/03/2008, 10h32
  4. reference d'un type enum non reconnue
    Par al3alwa dans le forum Langage
    Réponses: 6
    Dernier message: 26/02/2008, 11h44
  5. definition de type non reconnu par g++ ou erreur?
    Par harsh dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 09/06/2006, 01h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo