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

Linux Discussion :

Erreur compilation debutant C


Sujet :

Linux

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut Erreur compilation debutant C
    Bonjour,

    J'ai besoin de compiler un fichier C, mais je n'en ai pas fait depuis l'école, donc je galère un peu, voir beaucoup!!

    En gros voici les erreurs:
    ztest.c: In function ‘ztest_esrequest’:
    ztest.c:519: error: ‘oident’ undeclared (first use in this function)
    ztest.c:519: error: (Each undeclared identifier is reported only once
    ztest.c:519: error: for each function it appears in.)
    ztest.c:519: error: ‘ent’ undeclared (first use in this function)
    ztest.c:522: error: ‘VAL_TEXT_XML’ undeclared (first use in this function)
    ztest.c:529: error: ‘VAL_ISO_ILL_1’ undeclared (first use in this function)
    ztest.c:751: error: ‘VAL_SUTRS’ undeclared (first use in this function)
    ztest.c:751: warning: assignment makes pointer from integer without a cast
    ztest.c:771: warning: assignment makes pointer from integer without a cast
    ztest.c:774: error: dereferencing pointer to incomplete type
    ztest.c: In function ‘ztest_fetch’:
    ztest.c:868: error: ‘VAL_UNIMARC’ undeclared (first use in this function)
    Et voici le code aux lignes correspondantes:
    ligne 519:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      oident *ent = oid_getentbyoid(r->direct_reference);
    ligne 522:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      if (ent && ent->value == VAL_TEXT_XML)
    ligne 529:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      if (ent && ent->value == VAL_ISO_ILL_1)
    ligne 751:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      targetPart->taskPackageRecords[0]->u.record = 
                        z_ext_record (rr->stream, VAL_SUTRS, "test", 4);
    ligne 771:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     oident = oid_getentbyoid(rec->direct_reference);
    ligne 774:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      yaz_log (YLOG_LOG, "record %d type %s", i,
    				     oident->desc);
    ligne 868:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      r->output_format = VAL_UNIMARC;
    Je ne pense pas que ce soit des erreurs très compliquées à trouvée, mais mes connaissances en C sont très limitées, et je ne trouve pas...

    Si vous voulez plus de codes n'hésitez pas à me le dire...

    Merci d'avance pour votre aide.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Hello,

    Il ne trouve simplement pas le type oident (les autres erreurs proviennent de la première ou ont la même source).

    Il semblerait qu'il te manque l'inclusion d'un (plusieurs peut-être) en-tête. Je ne connais pas la bibliothèque qui déclare le type iodent, mais il semblerait que tu doives ajouter

    S'il est déjà inclus, c'est qu'il ne trouve pas le ficher en-tête. Tu peux lui spécifier un dossier dans lequel chercher grâce à l'option -I de gcc (-I/home/moi/header_rep/). Il est possible aussi que tu doives installer cette bibliothèque (la version developer) afin d'avoir les en-tête nécessaires.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    J'ai trouvé ca sur le net...
    7.2.1 OID database
    From YAZ version 3 and later, the oident system has been replaced by an OID database. OID database is a
    misnomer .. the old odient system was also a database.
    The OID database is really just a map between named Object Identifiers (string) and their OID raw equivalents.
    Most operations either convert from string to OID or other way around.
    Unfortunately, whenever we supply a string we must also specify the OID class. The class is necessary
    because some strings correspond to multiple OIDs. An example of such a string is Bib-1 which may
    either be an attribute-set or a diagnostic-set.
    Applications using the YAZ database should include yaz/oid_db.h.
    A YAZ database handle is of type yaz_oid_db_t. Actually that’s a pointer. You need not think deal
    with that. YAZ has a built-in database which can be considered "constant" for most purposes. We can get
    hold that by using function yaz_oid_std.
    All functions with prefix yaz_string_to_oid converts from class + string to OID. We have variants
    of this operation due to different memory allocation strategies.
    All functions with prefix yaz_oid_to_string converts from OID to string + class.
    Example 7.16 Create OID with YAZ DB
    We can create an OID for the Bib-1 attribute set on the ODR stream odr with:
    Odr_oid *bib1 =
    yaz_string_to_oid_odr(yaz_oid_std(), CLASS_ATTSET, "Bib-1", odr);
    This is more complex than using odr_getoidbystr. You would only use yaz_string_to_oid_-
    odr when the string (here Bib-1) is supplied by a user or configuration.
    7.2.2 Standard OIDs
    All the object identifers in the standard OID database as returned by yaz_oid_std can referenced directly
    in a program as a constant OID. Each constant OID is prefixed with yaz_oid_ - followed by OID class
    (lowercase) - then by OID name (normalized and lowercase).
    See Appendix A for list of all object identifiers built into YAZ. These are declared in yaz/oid_std.h
    but are included by yaz/oid_db.h as well.
    Example 7.17 Use a built-in OID
    We can allocate our own OID filled with the constant OID for Bib-1 with:
    Odr_oid *bib1 = odr_oiddup(o, yaz_oid_attset_bib1);
    7.3 Nibble
    Est ce que ca peut avoir un lien avec mes erreurs?


    Du coup j'ai l'impression qu'il faut inclure oid_db.h, ce que j'ai fais, et je n'ai pas d'erreur de type fichier inconnu...

    Mais j'ai encore mes erreurs d'avant...

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Effectivement, cela doit sûrement avoir un lien avec tes erreurs. A voir, ils ont remplacer le système "oident" par autre chose (OID db). Si tes erreurs persistent, c'est qu'ils ont dû changé l'api (Et donc les prototypes de méthode).

    Deux solutions:
    1. Porter ton programme pour cette nouvelle version de YAZ
    2. Utiliser la dernière version de YAZ supportant iodent (à voir, avant la version 3)


    Comme je l'ai dit, je ne connais pas du toute cette bibliothèque, je ne peux pas t'en dire plus à son sujet.

Discussions similaires

  1. RXControl RxRichEdit ERREUR Compilation
    Par loleske dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/02/2005, 19h12
  2. [FreePascal] Erreur compilation ou défaut Dev-Pascal ?
    Par molesqualeux dans le forum Free Pascal
    Réponses: 5
    Dernier message: 27/12/2004, 11h00
  3. [Débutant]Erreur compilation !
    Par gandalf_le_blanc dans le forum AWT/Swing
    Réponses: 23
    Dernier message: 30/08/2004, 15h23
  4. Trop de message d'erreurs: compilation KO
    Par jeannot27 dans le forum C++Builder
    Réponses: 6
    Dernier message: 21/01/2004, 17h45
  5. Erreur compilation DX8.1 VC++ 6
    Par d.vidal dans le forum DirectX
    Réponses: 1
    Dernier message: 10/09/2003, 10h04

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