Le chargement dynamique et les symboles de partage
-
24-09-2019 - |
Question
Je suis en train de charger une bibliothèque de modules via dl
de telle sorte que le module peut accéder à l'application GLOBALS principale. Comment est-ce possible de le faire?
Je reçois un message d'erreur de dlopen dire library/name.so: undefined symbol: ...
. Le seul drapeau utilisé est:. RTLD_NOW
Le module lui-même est construit avec libtool avec -module -avoid-version
.
La solution
La réponse est: l'utilisation -Wl,--export-dynamic
en liant le binaire principal, de sorte que tous les symboles sont exportés automatiquement aux bibliothèques chargées
Même question, vient de demander différemment: Recevoir erreur "symbole non défini" lors du chargement bibliothèque dlopen
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow