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 :

linux et gcc compilation error


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 105
    Par défaut linux et gcc compilation error
    J'ai un programme *.c mais je n'arrive pas à la compiler. Voilà la commande et les différentes erreurs. Je suis nul en c et j'ai besoin de votre aide.

    Je suis sous fedora core 13 avec tous les outils de programmation installé.

    Avec la première ligne sans le -I/usr/include/linux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -o dtesys dtesys.c -I/apps/retek92_fnac_dev/rms9000_src/oracle/lib/src -I/apps/oracle/Middleware/as_1/precomp/public -I/apps/oracle/Middleware/as_1/ -I/apps/oracle/Middleware/as_1/rdbms/public -I/apps/oracle/Middleware/as_1/plsql/include -I/apps/oracle/Middleware/as_1/ohs/include -I/usr/lib/gcc/i686-redhat-linux/4.4.4
    J'obients:

    /tmp/ccutgFu0.o: In function `main':
    dtesys.c.text+0x77): undefined reference to `LOGON'
    dtesys.c.text+0x103): undefined reference to `sqlcxt'
    dtesys.c.text+0x1c2): undefined reference to `sqlcxt'
    dtesys.c.text+0x1d8): undefined reference to `LOG_MESSAGE'
    dtesys.c.text+0x265): undefined reference to `sqlcxt'
    dtesys.c.text+0x27b): undefined reference to `LOG_MESSAGE'
    dtesys.c.text+0x308): undefined reference to `sqlcxt'
    dtesys.c.text+0x31e): undefined reference to `LOG_MESSAGE'
    dtesys.c.text+0x39e): undefined reference to `sqlcxt'
    dtesys.c.text+0x3b4): undefined reference to `CHECK_STATUS'
    dtesys.c.text+0x3d0): undefined reference to `LOG_MESSAGE'
    /tmp/ccutgFu0.o: In function `process':
    dtesys.c.text+0x49e): undefined reference to `sqlcxt'
    dtesys.c.text+0x4fe): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x7ae): undefined reference to `sqlcxt'
    dtesys.c.text+0x837): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x8cb): undefined reference to `sqlcxt'
    dtesys.c.text+0x948): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0xf55): undefined reference to `sqlcxt'
    dtesys.c.text+0xfb5): undefined reference to `WRITE_ERROR'
    /tmp/ccutgFu0.o: In function `calc_half':
    dtesys.c.text+0x1022): undefined reference to `CAL_TO_454'
    dtesys.c.text+0x1066): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x10d4): undefined reference to `CAL_TO_454_HALF'
    dtesys.c.text+0x1118): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x1147): undefined reference to `HALF_TO_454_FDOH'
    dtesys.c.text+0x118b): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x11ed): undefined reference to `HALF_TO_454_LDOH'
    dtesys.c.text+0x1231): undefined reference to `WRITE_ERROR'
    /tmp/ccutgFu0.o: In function `calc_month':
    dtesys.c.text+0x1304): undefined reference to `CAL_TO_454_FDOM'
    dtesys.c.text+0x1348): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x13e7): undefined reference to `CAL_TO_454_LDOM'
    dtesys.c.text+0x142b): undefined reference to `WRITE_ERROR'
    /tmp/ccutgFu0.o: In function `calc_week':
    dtesys.c.text+0x14a7): undefined reference to `CAL_TO_454_WNO'
    dtesys.c.text+0x14eb): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x1536): undefined reference to `C454_TO_CAL'
    dtesys.c.text+0x157a): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x15f8): undefined reference to `C454_TO_CAL'
    dtesys.c.text+0x163c): undefined reference to `WRITE_ERROR'
    /tmp/ccutgFu0.o: In function `update_unit':
    dtesys.c.text+0x18dc): undefined reference to `sqlcxt'
    dtesys.c.text+0x193c): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x1970): undefined reference to `LOG_MESSAGE'
    dtesys.c.text+0x1994): undefined reference to `LOG_MESSAGE'
    collect2: ld returned 1 exit status
    la seconde ligne avec -I/usr/include/linux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -o dtesys dtesys.c -I/apps/retek92_fnac_dev/rms9000_src/oracle/lib/src -I/apps/oracle/Middleware/as_1/precomp/public -I/apps/oracle/Middleware/as_1/ -I/apps/oracle/Middleware/as_1/rdbms/public -I/apps/oracle/Middleware/as_1/plsql/include -I/apps/oracle/Middleware/as_1/ohs/include -I/usr/lib/gcc/i686-redhat-linux/4.4.4 -I/usr/include/linux
    et j'obtiens:

    In file included from /usr/include/stdio.h:75,
    from /usr/include/retek.h:36,
    from dtesys.c:160:
    /usr/include/libio.h:332: error: expected specifier-qualifier-list before âsize_tâ
    /usr/include/libio.h:364: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/libio.h:373: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/libio.h:495: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before â_IO_sgetnâ
    In file included from /usr/include/retek.h:36,
    from dtesys.c:160:
    /usr/include/stdio.h:318: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdio.h:324: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdio.h:336: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdio.h:343: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdio.h:385: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdio.h:387: error: format string argument not a string type
    /usr/include/stdio.h:389: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdio.h:661: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdio.h:664: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdio.h:674: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdio.h:704: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âfreadâ
    /usr/include/stdio.h:710: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âfwriteâ
    /usr/include/stdio.h:732: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âfread_unlockedâ
    /usr/include/stdio.h:734: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âfwrite_unlockedâ
    In file included from /usr/include/retek.h:37,
    from dtesys.c:160:
    /usr/include/stdlib.h:140: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before â__ctype_get_mb_cur_maxâ
    In file included from /usr/include/sys/select.h:46,
    from /usr/include/sys/types.h:220,
    from /usr/include/stdlib.h:320,
    from /usr/include/retek.h:37,
    from dtesys.c:160:
    /usr/include/bits/time.h:76: error: redefinition of âstruct timevalâ
    In file included from /usr/include/retek.h:37,
    from dtesys.c:160:
    /usr/include/stdlib.h:337: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdlib.h:367: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdlib.h:369: error: nonnull argument with out-of-range operand number (argument 1, operand 4)
    /usr/include/stdlib.h:471: error: expected â)â before â__sizeâ
    /usr/include/stdlib.h:473: error: expected â)â before â__nmembâ
    /usr/include/stdlib.h:485: error: expected declaration specifiers or â...â before âsize_tâ
    In file included from /usr/include/stdlib.h:497,
    from /usr/include/retek.h:37,
    from dtesys.c:160:
    /usr/include/alloca.h:33: error: expected â)â before â__sizeâ
    In file included from /usr/include/retek.h:37,
    from dtesys.c:160:
    /usr/include/stdlib.h:503: error: expected â)â before â__sizeâ
    /usr/include/stdlib.h:508: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdlib.h:508: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdlib.h:756: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdlib.h:756: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdlib.h:757: error: nonnull argument with out-of-range operand number (argument 1, operand 5)
    /usr/include/stdlib.h:761: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdlib.h:761: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdlib.h:762: error: nonnull argument with out-of-range operand number (argument 1, operand 4)
    /usr/include/stdlib.h:840: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdlib.h:843: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdlib.h:847: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdlib.h:851: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdlib.h:860: error: expected declaration specifiers or â...â before âsize_tâ
    /usr/include/stdlib.h:863: error: expected â)â before â*â token
    /usr/include/stdlib.h:867: error: expected declaration specifiers or â...â before âwchar_tâ
    /usr/include/stdlib.h:871: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âmbstowcsâ
    /usr/include/stdlib.h:874: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âwcstombsâ
    In file included from /usr/include/sys/ioctl.h:30,
    from /usr/include/termio.h:6,
    from /usr/include/retek.h:41,
    from dtesys.c:160:
    /usr/include/bits/ioctl-types.h:29: error: redefinition of âstruct winsizeâ
    /usr/include/bits/ioctl-types.h:38: error: redefinition of âstruct termioâ
    dtesys.c: In function âmainâ:
    dtesys.c:284: warning: incompatible implicit declaration of built-in function âstrcpyâ
    je ne sais plus quoi faire

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Salut

    Ta première erreur est claire: tu fais appel à une fonction sqlcxt qui n'est définie nulle part. Et ta ligne de compilation ne fait référence à aucune librairie spécifique alors que si je tape sqlcxt sur google j'arrive direct sur des trucs oracle. Donc à mon avis, il te faut compiler en indiquant que ton éditeur de lien doit utiliser une librairie oracle quelconque...

    Ta seconde erreur semble bizarre. On dirait que les include utilisés ne sont pas ceux correspondants à ton noyau...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 105
    Par défaut
    Ok j'ai rajouté -L /$ORACLE_HOME/lib -lclntsh -lm ce qui donne comme commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -o dtesys dtesys.c -I/apps/rms9000/rms9000_src/oracle/lib/src -I/apps/oracle/Middleware/as_1/precomp/public -I/apps/oracle/Middleware/as_1/ -I/apps/oracle/Middleware/as_1/rdbms/public -I/apps/oracle/Middleware/as_1/plsql/include -I/apps/oracle/Middleware/as_1/ohs/include  -I/usr/lib/gcc/i686-redhat-linux/4.4.4/include/ -I/usr/include/ -L /$ORACLE_HOME/lib -lclntsh -lm

    et maintenant voilà les erreurs: je pense qu'elles sont dû à ce que gcc n'arrive pas à trouver le fichier *.h contenant ses reference. Pourant je lui précise bien au tt début avec -I/apps/rms9000/rms9000_src/oracle/lib/src

    /tmp/ccpZP4gG.o: In function `main':
    dtesys.c.text+0x77): undefined reference to `LOGON'
    dtesys.c.text+0x1d8): undefined reference to `LOG_MESSAGE'
    dtesys.c.text+0x27b): undefined reference to `LOG_MESSAGE'
    dtesys.c.text+0x31e): undefined reference to `LOG_MESSAGE'
    dtesys.c.text+0x3b4): undefined reference to `CHECK_STATUS'
    dtesys.c.text+0x3d0): undefined reference to `LOG_MESSAGE'
    /tmp/ccpZP4gG.o: In function `process':
    dtesys.c.text+0x4fe): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x837): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x948): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0xfb5): undefined reference to `WRITE_ERROR'
    /tmp/ccpZP4gG.o: In function `calc_half':
    dtesys.c.text+0x1022): undefined reference to `CAL_TO_454'
    dtesys.c.text+0x1066): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x10d4): undefined reference to `CAL_TO_454_HALF'
    dtesys.c.text+0x1118): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x1147): undefined reference to `HALF_TO_454_FDOH'
    dtesys.c.text+0x118b): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x11ed): undefined reference to `HALF_TO_454_LDOH'
    dtesys.c.text+0x1231): undefined reference to `WRITE_ERROR'
    /tmp/ccpZP4gG.o: In function `calc_month':
    dtesys.c.text+0x1304): undefined reference to `CAL_TO_454_FDOM'
    dtesys.c.text+0x1348): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x13e7): undefined reference to `CAL_TO_454_LDOM'
    dtesys.c.text+0x142b): undefined reference to `WRITE_ERROR'
    /tmp/ccpZP4gG.o: In function `calc_week':
    dtesys.c.text+0x14a7): undefined reference to `CAL_TO_454_WNO'
    dtesys.c.text+0x14eb): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x1536): undefined reference to `C454_TO_CAL'
    dtesys.c.text+0x157a): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x15f8): undefined reference to `C454_TO_CAL'
    dtesys.c.text+0x163c): undefined reference to `WRITE_ERROR'
    /tmp/ccpZP4gG.o: In function `update_unit':
    dtesys.c.text+0x193c): undefined reference to `WRITE_ERROR'
    dtesys.c.text+0x1970): undefined reference to `LOG_MESSAGE'
    dtesys.c.text+0x1994): undefined reference to `LOG_MESSAGE'

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par sacan Voir le message
    Ok j'ai rajouté -L /$ORACLE_HOME/lib -lclntsh -lm ce qui donne comme commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -o dtesys dtesys.c -I/apps/rms9000/rms9000_src/oracle/lib/src -I/apps/oracle/Middleware/as_1/precomp/public -I/apps/oracle/Middleware/as_1/ -I/apps/oracle/Middleware/as_1/rdbms/public -I/apps/oracle/Middleware/as_1/plsql/include -I/apps/oracle/Middleware/as_1/ohs/include  -I/usr/lib/gcc/i686-redhat-linux/4.4.4/include/ -I/usr/include/ -L /$ORACLE_HOME/lib -lclntsh -lm
    Bon, tu demandes au linkeur d'aller taper dans divers dossiers oracle pour ses librairies => ok

    Citation Envoyé par sacan Voir le message
    et maintenant voilà les erreurs: je pense qu'elles sont dû à ce que gcc n'arrive pas à trouver le fichier *.h contenant ses reference. Pourant je lui précise bien au tt début avec -I/apps/rms9000/rms9000_src/oracle/lib/src
    Est-ce que tes ".h" sont bien dans "/apps/rms9000/rms9000_src/oracle/lib/src" ? Est-ce que les ".h" qui sont dans "/apps/rms9000/rms9000_src/oracle/lib/src" sont ceux qu'il faut ???

    Accessoirement un dossier "/apps" c'est pas du standard (c'est pas interdit bien sûr mais on pourrait croire que t'as raté un embranchement dans ton chemin...)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 105
    Par défaut
    mon fichier dtesys.c fait apppel à #include "retek.h" qui est bien situé à l'emplacement /apps/rms9000/rms9000_src/oracle/lib/src

    celui-ci fait appel à ces *.h :

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>
    #include <memory.h>
    #include <termio.h>
    #include <math.h>
    #include <restart.h>
    #include <std_err.h>
    #include <std_len.h>
    #include <time.h>

    Toutes ces *.h sont bien présent dans le répertoire /apps/rms9000/rms9000_src/oracle/lib/src et /usr/include.

    Voilà...

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par sacan Voir le message
    mon fichier dtesys.c fait apppel à #include "retek.h" qui est bien situé à l'emplacement /apps/rms9000/rms9000_src/oracle/lib/src

    celui-ci fait appel à ces *.h :

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>
    #include <memory.h>
    #include <termio.h>
    #include <math.h>
    #include <restart.h>
    #include <std_err.h>
    #include <std_len.h>
    #include <time.h>

    Toutes ces *.h sont bien présent dans le répertoire /apps/rms9000/rms9000_src/oracle/lib/src et /usr/include.

    Voilà...
    Ben là faut chercher. Par exemple chercher si "LOGON" (qui est utilisé mais introuvable) est bien présent dans tes ".h"...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Différences compilation Linux(make/gcc)/Windows(mingw)
    Par boelraty dans le forum Débuter
    Réponses: 2
    Dernier message: 28/07/2010, 09h46
  2. [linux]Pb de compilation mysql en langage C
    Par toflofr dans le forum Requêtes
    Réponses: 7
    Dernier message: 27/05/2008, 14h58
  3. compilation error
    Par lion1 dans le forum MFC
    Réponses: 6
    Dernier message: 19/10/2005, 16h56
  4. Réponses: 13
    Dernier message: 22/07/2005, 15h24
  5. Réponses: 4
    Dernier message: 27/08/2003, 21h34

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