accès aux groupes de discussion, consultation et publication d'articles, recherche de "newsgroups"...
membres, identifiez-vous
é-mail Mot de passe
nouveau ? mot de passe oublié ?
Chargement... Chargement en cours...

Groupes français belges canadiens suisses internationaux Nétiquette
Échangez opinions et commentaires dans les forums de discussion.

Re: undefined symbol in foreign library

 [  Nouvelle Discussion Nouvelle discussion  |  Répondre au groupe Répondre au groupe  |  fr.comp.lang.lisp ] 

Retour : Accueil du site fr comp lang lisp   charte stats de ce groupe


  Sujet:   Re: undefined symbol in foreign library  
 De: ...@informatimago.com (Pascal Bourguignon)
 Groupes: fr.comp.lang.lisp
 Organisation: Informatimago
 Date: 26. Apr 2008, 22:25:08
 References: 1
"card.lemoine@aliceadsl.fr" <card.lemoine@aliceadsl.fr> writes:
> Je vous soumets un problème posé par le comportement nouveau du programme
> que je développe depuis des mois mais sur lequel je tourne en rond depuis
> trois jours.
> Il s'agit d'un développement parallèle en C et en lisp sur une question de
> traitement du signal. Il s'agirait de deux développements séparés à ceci
> près : l'utilisation d'une bibliothèque commune à l'un et à l'autre, et qui
> se développe en même temps que les deux "mains".


Bon, alors après une étude un peu plus aprofondie du problème, voici
quelques explications et la solution.

dlopen(3) effectivement est capable de charger automatiquement les
dépendences des bibliothèques chargées dynamiquement.  Mais il faut
savoir que:

   - la bibliothèque doit être créée en spécifiant explicitement ses
     dépendances.  Il est en effet possible de la créer sans lister
     les bibliothèques dynamiques dont elle dépend, et alors dlopen ne
     saura pas qu'il faut les charger.

   - dlopen va normalement chercher les bibliothèques dynamiques là où
     elles sont installée (et telles que prises en compte par ldconfig).

   - mais bien sur, on peut spécifier des chemins particuliers avec la
     variable d'environnement LD_LIBRARY_PATH.

   - CEPENDANT, la valeur de la variable d'environnement
     LD_LIBRARY_PATH n'est prise en compte lors de l'initialisation de
     libdl, la bibliothèque contenant dlopen, et non pas lorsque
     dlopen est appelée.  Ainsi changer la variable d'environnement au
     cours de l'exécution du programme appelant dlopen n'est pas
     effectif, il faut qu'elle soit définie avant de lancer le
     programme.

En conclusion, pour résoudre ton problème, il faut compiler les
bibliothèques en prennant soin de lister leurs dépendances, et il faut
lancuer clisp en spécifiant un LD_LIBRARY_PATH incluant le chemin où
trouver ces bibliothèques, tant qu'elles ne sont pas installée aux
endroits normaux.

Lancer clisp avec:

LD_LIBRARY_PATH=$HOME/projet_C/lib:$HOME/lib:$LD_LIBRARY_PATH clisp

ou:

export LD_LIBRARY_PATH=$HOME/projet_C/lib:$HOME/lib:$LD_LIBRARY_PATH 
clisp



Voir les détails dans :
http://www.informatimago.com/develop/lisp/two-libs.tar.gz


-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

READ THIS BEFORE OPENING PACKAGE: According to certain suggested
versions of the Grand Unified Theory, the primary particles
constituting this product may decay to nothingness within the next
four hundred million years.


DateSujet  Auteur
21.04.
* undefined symbol in
card.lemoine@aliceadsl.fr
22.04.
+* Re: undefined symbol in
Pascal Bourguignon
22.04.
|+- Re: undefined symbol in
card.lemoine@aliceadsl.fr
22.04.
|`* Re: undefined symbol in
card.lemoine
22.04.
| +- Re: undefined symbol in
card.lemoine
23.04.
| `* Re: undefined symbol in
Pascal Bourguignon
24.04.
|  `* Re: undefined symbol in
card.lemoine
24.04.
|   `* Re: undefined symbol in
Pascal Bourguignon
24.04.
|    `* Re: undefined symbol in
card.lemoine
24.04.
|     `- Re: undefined symbol in
Pascal Bourguignon
26.04.
`*   Re: undefined symbol in
Pascal Bourguignon
28.04.
 `- Re: undefined symbol in
card.lemoine
Groups Explorer contact votre avis comment ça marche? rechercher un groupe suggérer un groupe abuse accueil du site   Imprimer cette page   Envoyer cette page à un(e) ami(e)
Free counter and web stats