dlopen de plusieurs lib

Le
Anthony Catel
Bonjour,

Voici mon problème :

J'ai un programme qui load deux lib (A et B). Je ne connais pas à
l'avance dans quel ordre dlopen() va les charger.
Dans la lib A j'aimerai utiliser des "symboles" de la lib B. Le problème
c'est que si la lib A est chargée avant la lib B elle me renvoi
forcement une erreur :
" undefined symbol: foo".

Quel est le meilleurs moyen pour pallier à ce genre de problème ?
Charger la lib B dans chaque lib où je l'utilise ?

En gros c'est un système de plugins où certain aurais des dépendances
d'autres plugins.

Merci ;)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
espie
Le #18736721
In article Anthony Catel
Bonjour,

Voici mon problème :

J'ai un programme qui load deux lib (A et B). Je ne connais pas à
l'avance dans quel ordre dlopen() va les charger.
Dans la lib A j'aimerai utiliser des "symboles" de la lib B. Le problème
c'est que si la lib A est chargée avant la lib B elle me renvoi
forcement une erreur :
" undefined symbol: foo".

Quel est le meilleurs moyen pour pallier à ce genre de problème ?
Charger la lib B dans chaque lib où je l'utilise ?

En gros c'est un système de plugins où certain aurais des dépendances
d'autres plugins.



Il faut que tu affines ton edition de liens: tes plugins doivent referencer
les autres plugins, de sorte que ton dlopen, s'il est bien foutu, va tout
charger quand il y aura besoin.

Normalement, ca fonctionne... meme si ca veut dire que les gens qui ecrivent
dlopen() ont du avaler pas mal de cachets d'aspirine...
Anthony Catel
Le #18736791
En gros dans mon exemple je doit link A avec -lB ?


Marc Espie a écrit :
In article Anthony Catel
Bonjour,

Voici mon problème :

J'ai un programme qui load deux lib (A et B). Je ne connais pas à
l'avance dans quel ordre dlopen() va les charger.
Dans la lib A j'aimerai utiliser des "symboles" de la lib B. Le problème
c'est que si la lib A est chargée avant la lib B elle me renvoi
forcement une erreur :
" undefined symbol: foo".

Quel est le meilleurs moyen pour pallier à ce genre de problème ?
Charger la lib B dans chaque lib où je l'utilise ?

En gros c'est un système de plugins où certain aurais des dépendances
d'autres plugins.



Il faut que tu affines ton edition de liens: tes plugins doivent referencer
les autres plugins, de sorte que ton dlopen, s'il est bien foutu, va tout
charger quand il y aura besoin.

Normalement, ca fonctionne... meme si ca veut dire que les gens qui ecrivent
dlopen() ont du avaler pas mal de cachets d'aspirine...


Anthony Catel
Le #18736921
Ca voudrai dire que mon programme principal ainsi que les lib qui
utilisent "B" vont l'a charger ? (mon programme principal avec dlopen et
les lib dès quelles sont chargées)

Merci ;-)

Anthony Catel a écrit :
En gros dans mon exemple je doit link A avec -lB ?


Marc Espie a écrit :
In article Anthony Catel
Bonjour,

Voici mon problème :

J'ai un programme qui load deux lib (A et B). Je ne connais pas à
l'avance dans quel ordre dlopen() va les charger.
Dans la lib A j'aimerai utiliser des "symboles" de la lib B. Le problème
c'est que si la lib A est chargée avant la lib B elle me renvoi
forcement une erreur :
" undefined symbol: foo".

Quel est le meilleurs moyen pour pallier à ce genre de problème ?
Charger la lib B dans chaque lib où je l'utilise ?

En gros c'est un système de plugins où certain aurais des dépendances
d'autres plugins.


Il faut que tu affines ton edition de liens: tes plugins doivent referencer
les autres plugins, de sorte que ton dlopen, s'il est bien foutu, va tout
charger quand il y aura besoin.

Normalement, ca fonctionne... meme si ca veut dire que les gens qui ecrivent
dlopen() ont du avaler pas mal de cachets d'aspirine...




Publicité
Poster une réponse
Anonyme