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 :

Erreur de compilation d'un .c généré par pro*c


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Par défaut Erreur de compilation d'un .c généré par pro*c
    Hello !

    J'ai un gros soucis ... Je dois recompiler un programme pro*c sous Solaris 10. Le problème que je rencontre est que le programme c généré par pro*c ne compile pas après avec gcc.

    J'obtiens l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    In file included from /usr/include/stdlib.h:18,
                     from ./b2cam.c:834:
    /usr/include/iso/stdlib_iso.h:108: erreur: erreur de syntaxe avant « int »
    sur le fichier b2cam.c (et d'autres mais c'est la même erreur donc si je résoud celle-ci ...)

    Je ne suis pas très habitué aux compilateurs C ... Je fais du java principalement et je ne sais pas comment interprêter cette erreur.

    Si quelqu'un peut me donner une piste ?

    Je joins le fichier généré : b2cam.c
    et les 3 fichiers qu'il inclue (autre que des biblio standards) (que j'ai renommé en .c alors qu'à la base ils sont en .pc mais ça ne doit pas changer grand chose)
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Par défaut Commande Gcc
    Voici la commande gcc qui est utilisée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    gcc -I/logiciels/oracle/ora_10.2.0/precomp/public ./b2gen.c ./b2cam.c ./b2pt.c ./bdtoco.c ./bdtofic.c ./c2cam.c ./c2gen.c ./c2pt.c ./connect.c ./cotofic.c ./geseror.c ./ispfini.c ./ispfmaj.c ./majcr.c ./passt.c ./pcax.c ./pgen.c ./pplirr.c ./ppoints.c ./pzcass.c ./pzccre.c ./pcamp.c ./pcass.c ./pzmaj.c ./pzgcre.c ./pzcmil.c ./pzcax.c ./ptran.c ./prefdb.c ./pnbcamp.c ./ptrac.c ./pmil.c ./pinfo.c ./phisto.c ./pfctt.c ./pcmil.c ./transfert.c ./isplnk.c /logiciels/oracle/ora_10.2.0/lib/libclntsh.so ../libf2c/libf2c.a -o ../../load/bdtofic.exe
    In file included from /usr/include/stdlib.h:18,
                     from ./b2cam.c:834:
    /usr/include/iso/stdlib_iso.h:108: erreur: erreur de syntaxe avant « int »

  3. #3
    Membre éclairé Avatar de sparthane777
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 318
    Par défaut
    Pourquoi ne pas mettre tes fichiers en Makefile directement dans une librairie, ça t'éviteras de te taper des lignes de commande à rallonge et d'avoir une meilleure clarté pour t'aider

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Par défaut
    Evidemment, le tout est déjà dans un makefile ...

    J'ai sorti uniquement ce qui posait problème, pour ne pas noyer dans du code qui ne pose pas problème.

  5. #5
    Membre éclairé Avatar de sparthane777
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 318
    Par défaut
    Citation Envoyé par cobol60 Voir le message
    Evidemment, le tout est déjà dans un makefile ...

    J'ai sorti uniquement ce qui posait problème, pour ne pas noyer dans du code qui ne pose pas problème.
    ok autant pour moi. Je vais essayer de chercher

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Par défaut
    Petite précision, la version de gcc utilisée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Reading specs from /usr/local/lib/gcc/sparc-sun-solaris2.10/3.4.6/specs
    Configured with: ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --enable-shared --enable-languages=c,c++,f77
    Thread model: posix
    gcc version 3.4.6

  7. #7
    Membre éclairé Avatar de sparthane777
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 318
    Par défaut
    As tu vérifié la ligne 18 de ton fichier stdlib.h.
    Personnellement c'est par là que j'aurais commencé.

  8. #8
    Membre éclairé Avatar de sparthane777
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 318
    Par défaut
    Tu pourrais pas faire un screenshot de ta ligne 834 ?
    Désolé j'ai pas notepad ++ enfin si tu peut faire ça

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Par défaut
    la stdlib.h et la stdlib_iso.h sont des librairies systèmes ... et dans le contexte dans lequel je travaille il est impensable d'y toucher vu les effets de bords que cela peut entraîner.

    La ligne 834 :

    Mais voici la ligne 18 de stdlib.h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include <iso/stdlib_iso.h>
    Bref rien d'extraordinaire.

    et voici la ligne 107 à 109 de stdlib_iso.h dans laquelle est véritablement nichée l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    extern void abort(void) __NORETURN;
    extern int abs(int);
    extern int atexit(void (*)(void));

  10. #10
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Regarde ce que produit le preprocesseur (-E a la place de -c)

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Par défaut
    pas d'erreur visiblement lors du preprocessing qui donne ce fichier en sortie.
    Fichiers attachés Fichiers attachés
    • Type de fichier : c test.c (38,1 Ko, 98 affichages)

  12. #12
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Ah bon? Les lignes que tu donnais ci-dessus deviennent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    extern void abort(void) __attribute__((__noreturn__));
    extern int ((int) >= 0 ? (int) : -(int));
    extern int atexit(void (*)(void));
    Il y a visiblement une macro abs qui vient un peu modifier stdlib_iso.h...

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Par défaut
    Merci beaucoup, c'était bien ça ... il y a un include qui définit une macro abs et du coup modifie le header de la stdlib_iso ...

    Merci pour le coup de main !

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 09/12/2013, 21h07
  2. erreur au lancement de l'exe généré par cx_freeze
    Par jalon_b dans le forum Déploiement/Installation
    Réponses: 9
    Dernier message: 07/09/2011, 22h02
  3. [XSLT] Erreur XML généré par php "semble pas avoir d'information de style"
    Par Overstone dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 01/08/2007, 19h59
  4. Erreur dans des fichiers générés par WSDL2Java
    Par stephou85 dans le forum Services Web
    Réponses: 2
    Dernier message: 15/05/2007, 12h49
  5. Message d'erreur généré par le bandeau de pub skyscrapper
    Par whilecoyote dans le forum Evolutions du club
    Réponses: 11
    Dernier message: 20/04/2006, 02h20

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