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 :

Compilation .h introuvable


Sujet :

C

  1. #21
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    La librairie libclntsh.so se trouve dans le répertoire /u01/app/oracle/product/db10.2.0/lib

    j'ai donc fait le makefile comme suit:

    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
    18
    19
    20
    21
    22
    23
     
     
    CC=gcc
    CFLAGS=-W -Wall -ansi -pedantic
    EXEC=user_supplied
    INCS= -I$../../../..
    OCILIB=-DOCI_IMPORT_LINKAGE -DOCI_CHARSET_UNICODE
    LDFLAGS= -lclntsh  /u01/app/oracle/product/db10.2.0/lib -locilib
     
     
    all: $(EXEC)
     
    user_supplied: user_supplied.o
    	$(CC) -o user_supplied user_supplied.o -L/u01/app/oracle/product/db10.2.0/lib -L/u01/app/serena/cm/pcms_api $(LDFLAGS)
     
    user_supplied.o: user_supplied.c
    	$(CC) $(INCS) $(CFLAGS) -o user_supplied.o -c user_supplied.c $(OCILIB)
     
    clean:
    	rm -rf *.o
     
    cleanall: clean
    	rm -rf $(EXEC)
    mais j'ai l'erreur /u01/app/oracle/product/db10.2.0/lib non reconnu :est un repertoire
    Docteur en informatique
    Freelance R&D, Web
    Activité freelance : https://redinnov.fr
    Page perso : https://michel-dirix.com/

  2. #22
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    en fait je me plante un peu depuis taleur
    le fichier qu'il me reste à trouver est bien libocilib.so?
    Docteur en informatique
    Freelance R&D, Web
    Activité freelance : https://redinnov.fr
    Page perso : https://michel-dirix.com/

  3. #23
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    yes

    si tu as fait une install par défaut, il doit être dans /usr/local/lib...


    donc essaie :

    LDFLAGS= -L/u01/app/oracle/product/db10.2.0/lib -lclntsh -L/usr/local/lib -locilib
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  4. #24
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    Ce n'est pas moi qui ait installé ça, c'est le client qui a installé ça sur le serveur. Dans /usr/local/lib il n'y a rien du tout! donc je ne sais pas ou peut se trouver ce fichier!
    Docteur en informatique
    Freelance R&D, Web
    Activité freelance : https://redinnov.fr
    Page perso : https://michel-dirix.com/

  5. #25
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    fait une recherche de libocilib.so ou libocilib.a
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  6. #26
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    j'ai donc lancé la commande find . -name 'libocilib.*' -print >u01/app/serena/cm/pcms_api/premium/result.txt

    et j'ai droit à ça

    find: ./u01/app/oracle/oraInventory: Permission non accordée
    find: ./u01/app/oracle/OracleHomes: Permission non accordée
    find: ./u01/app/oracle/oradata/serenapr: Permission non accordée
    find: ./u01/app/oracle/oradata/acti01: Permission non accordée
    find: ./u01/app/oracle/lost+found: Permission non accordée
    find: ./u01/app/oracle/admin/ocsdb: Permission non accordée
    find: ./u01/app/oracle/admin/prointp1: Permission non accordée
    find: ./u01/app/oracle/admin/acti01: Permission non accordée
    ............

    et je ne peux pas passer en sudo, je n'en ai pas les droits! le fichier result.txt est vide. Les libs ne sont pas existantes?!
    Docteur en informatique
    Freelance R&D, Web
    Activité freelance : https://redinnov.fr
    Page perso : https://michel-dirix.com/

  7. #27
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    ben, ca alors, il aurait pas installé ocilib ?
    faut voir avec le client ..

    PS : attend, t'étais dans quel répertoire courant ??

    refais le find sur le root et pas dans le rep oracle...
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  8. #28
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    j'étais bien sur le root!
    j'étais dans /
    bizarre quand méme que ce ne soit pas installé
    je vais voir pour que ce soit installé

    je te remercie en tout cas pour le temps passé à m'aider!
    Docteur en informatique
    Freelance R&D, Web
    Activité freelance : https://redinnov.fr
    Page perso : https://michel-dirix.com/

  9. #29
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    bon j'ai vu avec les admins, effectivement il n'était pas installé! Ils m'installent ça pour mon prochain jour de travail (mardi)!

    je te remercie beaucoup pour ta patience et te contacterai a nouveau si tu es d'accord si j'ai encore des problèmes!
    Docteur en informatique
    Freelance R&D, Web
    Activité freelance : https://redinnov.fr
    Page perso : https://michel-dirix.com/

  10. #30
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    aucun souci
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  11. #31
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    merci beaucoup!
    j'espère que je ne serai plus trop embêté!
    la prochaine étape sera de faire un makefile qui appelerai plusieurs sous-makefile!
    Docteur en informatique
    Freelance R&D, Web
    Activité freelance : https://redinnov.fr
    Page perso : https://michel-dirix.com/

  12. #32
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    alors ?
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  13. #33
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    j'ai réussi à faire mon makefile qui appelle d'autres sous makefile mais j'ai un autre soucis

    en fait j'utilise une lib s'appelant pcms_api.h et une autre s'appelant pcms_event.h

    Lors de la compilation j'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    user_supplied.o(.text+0x74): In function `userSuppliedFunction':
    : undefined reference to `PcmsXmvaGetVal'
    user_supplied.o(.text+0x172): In function `userSuppliedFunction':
    : undefined reference to `PcmsXmvaGetVal'
    user_supplied.o(.text+0x19a): In function `userSuppliedFunction':
    : undefined reference to `PcmsXmvaGetVal'
    ce qui doit correspondre à mon appel à la fonction PcmsSvaGetVal dans mon code puisque dans pcms_api.h j'ai la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #define PcmsSvaGetVal(v)            PcmsXmvaGetVal((v),0)
    donc pourquoi ai-je cette erreur?
    Docteur en informatique
    Freelance R&D, Web
    Activité freelance : https://redinnov.fr
    Page perso : https://michel-dirix.com/

  14. #34
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    j'ai l'arborescence suivante :

    -pcms_api
    --pcms_api.h
    --pcms-event.h
    --premium
    ---events
    ----autorisationBrancheProduit
    -----user_supplied.c
    -----makefile

    et dans $(ORACLE_HOME)/rdbms/public je dois utiliser le fichier oci.h
    et dans $(ORACLE_HOME)/lib je dois utiliser la librairie libclntsh.so

    j'ai donc le makefile 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
    18
    19
    20
    21
     
    CC=gcc
    CFLAGS=-W -Wall -ansi -pedantic
    EXEC=user_supplied
    INCS= -I$../../../../pcms_api -I$(ORACLE_HOME)/rdbms/public
    LDFLAGS=-L$(ORACLE_HOME)/lib -lclntsh 
     
     
    all: $(EXEC)
     
    user_supplied: user_supplied.o
    	$(CC) -o $(EXEC) user_supplied.o $(INCS) $(LDFLAGS)  
     
    user_supplied.o: user_supplied.c
    	$(CC) $(INCS) $(CFLAGS) -o user_supplied.o -c user_supplied.c
     
    clean:
    	rm -rf *.o
     
    cleanall: clean
    	rm -rf $(EXEC)
    et l'erreur est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    gcc -o user_supplied user_supplied.o -I./../../../pcms_api -I/u01/app/oracle/product/db10.2.0/rdbms/public -L/u01/app/oracle/product/db10.2.0/lib -lclntsh
    user_supplied.o(.text+0xfa): In function `userSuppliedFunction':
    : undefined reference to `PcmsXmvaGetVal'
    user_supplied.o(.text+0x16f): In function `userSuppliedFunction':
    : undefined reference to `PcmsXmvaGetVal'
    user_supplied.o(.text+0x197): In function `userSuppliedFunction':
    : undefined reference to `PcmsXmvaGetVal'
    collect2: ld a retourné 1 code d'état d'exécution
    make: *** [user_supplied] Erreur 1
    ces fonctions sont pourtant définies dans pcms_api.h!

    d'ou vient le problème?

    merci d'avance
    Docteur en informatique
    Freelance R&D, Web
    Activité freelance : https://redinnov.fr
    Page perso : https://michel-dirix.com/

  15. #35
    Membre actif Avatar de Grulim
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 234
    Points : 288
    Points
    288
    Par défaut
    Quel est la lib ou le .c qui défini la fonction PcmsXmvaGetVal ?
    Il semble que tu l'ais oublié.

    Le .h ne fait que déclarer la fonction et il manque son "corps".

  16. #36
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    Je ne sais pas à quelle .c ou quelle lib ce fichier se rapporte!
    Comment le savoir?
    Il n'y a pas de pcms_api.c!
    Faut que je me débrouille pour trouver la bonne librairie alors?
    Docteur en informatique
    Freelance R&D, Web
    Activité freelance : https://redinnov.fr
    Page perso : https://michel-dirix.com/

  17. #37
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    non, il doit y avoir des .a ou des .so ou des .DLL

    le .h déclare la fonction, avec son type et ses arguments, et prmet que le compilateur vérifie que c'est conforme..

    Ensuite, à l'édition de lien, le compilateur/linker va chercher la correspondance dans les objets ou biblothèques référencées...

    Ces objets peuvent être indiqués séparément (une série de .o) ou bien via des bibliothèques (statiques .a ou dynamiques .so ou .DLL).
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  18. #38
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    sur le serveur il doit y avoir une centaine de .so dans toute l'arborescence donc comment savoir quel est le bon?!

    merci de ton aide en tout cas!
    Docteur en informatique
    Freelance R&D, Web
    Activité freelance : https://redinnov.fr
    Page perso : https://michel-dirix.com/

  19. #39
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    je pense que la librairie se trouve dans /u01/app/serena/cm/lib/
    je l'insère comment dans mon makefile?
    Docteur en informatique
    Freelance R&D, Web
    Activité freelance : https://redinnov.fr
    Page perso : https://michel-dirix.com/

  20. #40
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    -L chemin -lpostfixe_de_la_bibliothèque
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Compilation : gsed Introuvable
    Par naruto_dz dans le forum Ubuntu
    Réponses: 2
    Dernier message: 27/02/2008, 14h07
  2. Problème de compilation: fonction introuvable
    Par Bornerdogge dans le forum Ogre
    Réponses: 18
    Dernier message: 02/02/2007, 21h40
  3. [Compilation] Bibliothèque introuvable
    Par Julien Dufour dans le forum Access
    Réponses: 4
    Dernier message: 05/01/2007, 12h35
  4. Compilation package introuvable
    Par edwin301 dans le forum Maven
    Réponses: 1
    Dernier message: 25/10/2006, 16h50
  5. [POI] echec de compil, package introuvable
    Par hugo123 dans le forum Documents
    Réponses: 2
    Dernier message: 05/10/2005, 11h33

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