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

Interfaces de programmation Oracle Discussion :

[OCILIB] OCILIB sous Unix


Sujet :

Interfaces de programmation Oracle

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 44
    Par défaut [OCILIB] OCILIB sous Unix
    Bonjour,

    D'une part, je voudrais savoir quelle est la signfication des options -lclntsh et -locilib dans

    -L/$ORACLE_HOME/lib -lclntsh
    -L$USER_LIBS/lib -locilib

    D'autre part, j'ai essayé de compiler un projet Oracle, et j'ai un problème de link avec ces 2 options justement...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    g++: -lclntsh: linker input file unused because linking not done
    g++: -locilib: linker input file unused because linking not done
    Pourriez-vous m'eclairer.

    Merci

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Salut,

    Concernant ta 1ere question, ces flags permettent de lier la librairie partagée OCI d'Oracle (libclntsh.so) et la librairie OCILIB (libocilib.so) à ton programme

    Concertant ta 2eme question, ton makefile ou ta ligne de commande sont fouareux.. Poste les donc !
    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

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 44
    Par défaut
    Bonjour,

    Effectivement j'avais ajouté un -c sans le vouloir...

    J'ai réussi à compiler mtn, par contre l'exécution de mon programme engendre un "segmentation fault"...

    voici mon code :
    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
     
     
    #include <iostream>
    #include <ocilib.h>
     
    using namespace std;
     
    int main()
    {
     
    	if(!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT))
    	{
    	    cout << "ERREUR" << endl;
    	    return EXIT_FAILURE;
    	}
    	else 
                 {
    	    cout << "ok" << endl;
    	    OCI_Cleanup();
    	}
    	return 0;
    }
    Auriez-vous une idée du problème?

    Merci

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Postes tes commandes de compilation !
    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

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 44
    Par défaut
    Bonjour,

    Voici la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    g++ -I/home/USER/include -DOCI_IMPORT_LINKAGE -DOCILIB_CHARSET_ANSI -L/appli/oracle/product/10.2.0/lib -lclntsh  -L/home/USER/lib -locilib
    main.cpp

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    est ce que

    - /appli/oracle/product/10.2.0/lib
    - /home/USER/lib

    sont tous les deux présents dans la variable LD_LIBRARY_PATH ?

    (tu es sous linux je présume)
    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

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 44
    Par défaut
    Je suis sous Unix :

    voici le contenu du path LD_LIBRARY_PATH :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /appli/oracle/product/10.2.0/lib:/usr/local/lib

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Arrête de dire que t'es soux unix, j'ai compris...
    Dis moi à la place quel unix : hpux, aix, solaris, ......?

    c'est une machine 32 ou 64 bits ?
    As tu aussi un répertoire ORACLE_HOME/lib32 ?

    A tu compilé ocilib en 32bits ou en 64bits ?
    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

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 44
    Par défaut
    C'est sous AIX!
    C'est une machine 32bits.

    oui j'ai un répertoire ORACLE_HOME/lib32

    au niveau de la compilation ocilib je ne sais pas si j'ai compilé en 32bits ou 64, j'ai seulement effectué les commandes suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ./configure --prefix=$HOME --exec-prefix=$HOME
    make
    make install

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 44
    Par défaut
    Bonjour,

    Je travaille actuellement avec ocilib sous AIX.
    et je voudrais savoir quels sont les fichiers que nous sommes sensés retrouver dans les répertoires suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    usr/local/include => ocilib.h ??
    $ORACLE_HOME/lib => ??
    usr/local/lib => libocilib.a, libocilib.la ??
     
     
    echo $ORACLE_HOME => /appli/oracle/product/10.2.0     ??

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    usr/local/include => ocilib.h
    ok

    usr/local/lib => libocilib.a, libocilib.la
    ok car sous aix libocilib.a est une librairie partagée comme les .so sous linux

    $ORACLE_HOME/lib
    ca dépend... Selon les versions de oracle et de aix, c'est lib ou lib32 ou lib64.. sinon ce répertoire doit doit contenir au moins libclntsh.a (ou libclntsh.so)
    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

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 44
    Par défaut
    Pour une version AIX 5.3 et une version Oracle 10.2.0 ?

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

Discussions similaires

  1. [OCILIB] Compilation sous VS2010
    Par cobfly dans le forum Interfaces de programmation
    Réponses: 1
    Dernier message: 24/09/2010, 16h51
  2. [OCILIB] Compilation sous hpux Itanium 64 bits
    Par cobfly dans le forum Interfaces de programmation
    Réponses: 7
    Dernier message: 08/02/2010, 12h01
  3. [Kylix] Kylix sous UNIX
    Par gRRosminet dans le forum EDI
    Réponses: 3
    Dernier message: 09/11/2004, 17h07
  4. Montage sur Debian de AFPS sous UNIX
    Par Harbaingan dans le forum Administration système
    Réponses: 2
    Dernier message: 14/01/2004, 22h03
  5. Chargement dynamique de DLL sous Unix
    Par Willou dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 18/12/2002, 18h25

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