Je travaille sur une architecture de plugin simple pour mon application. Un plugin est un objet partagé avec une fonction "get interface" connue. J'accède au .so via dlopen/dlsym etc. Assez standard. Certains de mes plugins ont des fichiers .so supplémentaires qui doivent également être chargés. Ces fichiers peuvent être livrés avec un plugin très bien, mais j'ai besoin de l'application pour savoir où/comment les charger. Donc, ma question est: comment ajouter un répertoire de plugin particulier à la liste des endroits où chercher des bibliothèques? Je ne peux pas définir LD_LIBRARY_PATH avant de démarrer l'application, car le plugin sera chargé plus tard. Sinon, ai-je besoin de chaque plugin pour fournir explicitement la liste des dépendances dans un type de fichier manifeste, afin que je puisse les charger avec dlopen() en premier? Merci. Edit: pour clarifier, les répertoires des plugins ne sont pas connus avant le démarrage de l'application, donc je ne peux pas définir LD_LIBRARY_PATH à ce moment là.Linux: modifier LD_LIBRARY_PATH à l'exécution
1
A
Répondre
0
Selon this linux évalue LD_LIBRARY_PATH avant de démarrer l'application, il n'est donc pas conscient des modifications que vous apportez à l'exécution.
Questions connexes
- 1. LD_LIBRARY_PATH
- 2. Réglage LD_LIBRARY_PATH dans Cygwin
- 3. Modifier LD_LIBRARY_PATH JAVA_LIBRARY et CLASSPATH dans le travail hadoop
- 4. bibliothèques de liaison -rpath LD_LIBRARY_PATH
- 5. comment définir LD_LIBRARY_PATH dans Ubuntu 11.04
- 6. LD_LIBRARY_PATH et le travail PBS
- 7. set LD_LIBRARY_PATH from Makefile
- 8. LD_LIBRARY_PATH avec sudo python
- 9. passthru() centos LD_LIBRARY_PATH
- 10. Modification de l'environnement de processus actuel LD_LIBRARY_PATH
- 11. Où définir LD_LIBRARY_PATH sous Solaris?
- 12. LD_LIBRARY_PATH: comment rechercher un objet partagé
- 13. Impossible de définir le processus LD_LIBRARY_PATH pour Java
- 14. Modifier une image Linux montée
- 15. Erreur LD_LIBRARY_PATH lors de l'appel de ssh
- 16. Ne voulez définir LD_LIBRARY_PATH chaque fois
- 17. LD_LIBRARY_PATH ne fonctionne pas sans LD_PRELOAD
- 18. Modifier PWD de Linux à partir de JSP
- 19. Modifier la table de protocole Linux
- 20. Modifier la valeur dans PLIST sous Linux
- 21. Modifier le curseur pour Netbeans sur Linux
- 22. Linux: Comment puis-je modifier resolv.conf
- 23. Module Linux pour modifier les paquets (Netfilter)
- 24. Modifier le plist binaire sous linux
- 25. Modifier uniquement les fichiers utilisant Linux Shell
- 26. Linux Modifier Date de modification des fichiers?
- 27. Utilisation correcte de LD_LIBRARY_PATH ou ldconfig pour un progiciel
- 28. Besoin de construire (ou obtenir autrement) python-devel 2.3 et ajouter à LD_LIBRARY_PATH
- 29. Réglage de la LD_LIBRARY_PATH dans une application Java
- 30. qmake .pro fichier pas analysé correctement pour générer LD_LIBRARY_PATH
Vous pouvez et devez lier votre fichier plugins '* .so' avec les bibliothèques partagées requises' gcc -Wall -O -shared -fPIC plugin.c -lsomelibrary -o plugin.so' –
Je le fais déjà, mais le problème se pose à l'exécution avec l'environnement de l'application ne sachant pas où vit libsomelibrary.so - c'est la chose que je dois être en mesure de spécifier après le démarrage de l'application. – gimmeamilk