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

Autres éditeurs Discussion :

[UNIX Forte 6.1 G++] pbl chargement de librairie partagée


Sujet :

Autres éditeurs

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 9
    Points : 15
    Points
    15
    Par défaut [UNIX Forte 6.1 G++] pbl chargement de librairie partagée
    Bonjour à tous,

    J'ai besoin d'un gros coup de pouce sur le projet surlequel je travaille.

    J'ai crée une librairie partagé .so (avec Forte 6.1) en C++ qui utilise des composants fournis par Oracle (XML developer Kit 9.2.0.1). Les composants en question sont des archives (*.a).
    Oracle indique que le compilateur utilisé est sparcWork 6.1 (Forte ! quoi! )

    Lorsque je tente d'appeler cette librarie avec un exe de test (lui aussi compilé avec Forte), pas de souci. L'appel aux fonctions contenues dans les *.a est OK.

    Par contre, cette librairie doit être appelée par un progiciel (Siebel eBusiness en l'occurence). Or, le progiciel s'avère incapable de charger cette librarie.

    Du coup, j'ai essayé de faire un exe de test en g++ ou en gcc pour appeler ma librairie. Mais là, j'ai été incapable de compiler l'exe de test.

    Lorsque je compile ma librairie avec G++, je n'arrive pas non plus à créer un exe de test mais par contre, le progiciel Siebel arrive à charge la lib mais PLANTE (méchemment) le process au moment de l'appel des fonctions du XDK.

    Alors voici mon hypothèse : le XDK n'est pas compatible avec G++ ou GCC. Or je me suis apercu que mon exe de test en G++ presente une ligne avec le fichier Value-Xa.C si on lance la commande nm. De même ce fichier est présent dans l'exe du progiciel qui appele ma librairie.
    Ce fichier n'est pas présent dans le "nm" de mes librairies ou programmes compilés sous Forte 6.1. Je suppose donc que l'exe est compilé sous G++.

    Alors voici mes questions :

    Est-il possible de compiler une librairie sous Forte 6.1 et de l'appeler avec un exe compilé sous GCC ou G++? Est-ce que ce genre de cas de figure (environnement multi compilateur) est envisageable? Quelqu'un a-t-il une expérience de ce genre de problème?

    Merci à quiconque peut me mttre sur la voie.

    Claudio

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Points : 325
    Points
    325
    Par défaut
    tu la charge comment ta shared lib ?
    tu fais un dlopen, ou tu en donnes le nom au link ?
    Le chmin pour la trouver est bien dans le LD_LIBRARY_PATH ?
    les fonction que tu appelles sont elle en C++ ou en C ?

    Il est prefereble qu'elles soient en C...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 9
    Points : 15
    Points
    15
    Par défaut
    youpi, enfin un mec qui, au moins, d'interesse au sujet...

    Tu la charge comment ta shared lib ?
    tu fais un dlopen, ou tu en donnes le nom au link ?
    Je ne maitriser pas le chargement de ma librairie. sauf à partir de mon exe de test. C'est un progiciel qui la charge. Mais vu que le progiciel est sensé chargé n'importe quelle librairie, c'est très probablement un dlopen (je suppose que cette fonction est equivalent au loadlibrary sous Windows.)

    Le chemin pour la trouver est bien dans le LD_LIBRARY_PATH ?
    ouiouioui. il n'y a de problème de ce type, car la librarie sans utilisation de la librairie oracle est appelée sans problème....
    A priori, je pense que c'est l'archive Oracle et le process principal qui sont incompatible... les deux sont en C++ 32 bits. l'archive Oracle et ma librairie sont créées avec le compilateur Forte. mais je ne connais le compilatuer du progiciel.


    les fonction que tu appelles sont elle en C++ ou en C ?
    C++

    Il est prefereble qu'elles soient en C...
    Et non!!!



    Des idées en plus???[/quote]

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 9
    Points : 15
    Points
    15
    Par défaut [résolu]
    Pour information.

    Dans le makefile, il fallait compiler ma librairie avec l'option -bsymbolic et non -bdynamic.

    Ne me demandez pas pourquoi, mais là ça marche.

    Merci à toi, Gandalf pour tes tentatives de réponse au problème.

    Claudio

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Points : 325
    Points
    325
    Par défaut
    Désolé, je ne suis pas là le WE donc je n'ai pas vu ta réponse du samedi.

    en UNIX les shared libraries ne sont pas réellement liées, et du coup comme il n'y a pas de veritable analyse de dépendances les .a liés au shared lib ne sont pas exploités...

    le -Bsymbolic force cette edition de liens interne et donc permet d'exploiter les lib archive ...

    désolé de ne pas avoir pu t'aider plus...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/05/2007, 00h22
  2. Chargement de librairie DLL
    Par MonsieurAk dans le forum Windows
    Réponses: 14
    Dernier message: 23/05/2007, 19h39
  3. chargement de librairies natives
    Par eclesia dans le forum NetBeans
    Réponses: 10
    Dernier message: 31/01/2007, 13h16
  4. ordre de chargement de librairies
    Par sidi.elmoctar dans le forum Maven
    Réponses: 3
    Dernier message: 25/08/2006, 20h08
  5. [JSP] pbl chargement d'une page JSP
    Par Shiryu44 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 30/03/2005, 10h49

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