J'ai une bibliothèque partagée dit "libeval.so". J'utilise ceci dans mon projet pour créer sur plus de bibliothèque partagée appelée "lidpi.so". La bibliothèque appelée "libdpi.so" est utilisée par un outil. Maintenant, cet outil ne peut voir aucune autre bibliothèque autre que "libdpi.so". J'utilise peu d'appels de fonctions présents dans "libeval.so", et ceux-ci ne sont pas présents dans "libdpi.so". Y at-il un commutateur dans gcc, ou quelque chose pour surmonter cela.créer une bibliothèque partagée en utilisant une autre bibliothèque dans linux
Répondre
Si libdpi.so
est conçu de sorte qu'il puisse ouvrir libeval.so
, alors votre programme doit seulement savoir environ libdpi.so
.
Plus précisément, libdpi.so
devrait avoir une fonction qui appelle dlopen
, probablement comme ceci:
dlopen("path/to/libdpi.so", RTLD_LAZY);
Ensuite, d'autres fonctions peuvent libdpi.so
interface avec libeval.so
.
Modifier: Pour construire une bibliothèque partagée, utilisez cette commande:
gcc -shared -o libdpi.so [list of object files to go in libdpi.so]
Note: Lorsque vous construisez vos objets, utilisez l'argument de commande -fPIC
avec gcc, comme ceci:
gcc -fPIC -o foo.o foo.c
Je ne suis pas sûr comment libdpi.so est créé :( – Alphaneo
Salut en quelque sorte, l'option suivante semble fonctionner :) gcc -fPIC $ (ALL_OBJ) $ (ALL_PATH) -leval -shared -o libdpi.so Je vais essayer de trouver une explication :) J'ai également fait quelques recherches sur votre suggestion. C'est probablement une bonne méthode pour charger la bibliothèque, je suppose. – Alphaneo
- 1. Possible de créer une bibliothèque partagée avec une bibliothèque utilisée par lien statique?
- 2. Champs globaux statiques dans une bibliothèque partagée - Où vont-ils?
- 3. bibliothèque d'entrée Linux/X11 sans créer une fenêtre
- 4. Comment déboguer une bibliothèque partagée en utilisant eclipse/gdb sous Windows?
- 5. Liaison par rapport à une version de bibliothèque partagée spécifique sous Linux
- 6. Compilation de bibliothèque partagée dynamique avec g ++
- 7. Liaison d'une bibliothèque partagée à l'aide de gcc
- 8. Comment créer un lien vers une bibliothèque partagée sans le préfixe lib * dans un répertoire différent?
- 9. Restriction des symboles dans une bibliothèque statique Linux
- 10. Comment créer une bibliothèque statique pour iPhone?
- 11. Troubles à inclure (Linking) une bibliothèque statique dans un autre
- 12. Bibliothèque partagée pour iPhone et BlackBerry
- 13. taille de fichier de la bibliothèque partagée
- 14. Lien vers une bibliothèque statique liée à une bibliothèque statique
- 15. Bibliothèque de classes multiples .NET dans une bibliothèque
- 16. best c bibliothèque audio linux
- 17. en utilisant la bibliothèque fpdf
- 18. gcc: Activation des symboles de débogage dans la bibliothèque partagée
- 19. et sortie sans une bibliothèque en C
- 20. En utilisant une bibliothèque de documents sharepoint, comment puis-je créer des 'permaliens'?
- 21. Remplissage du modèle pour une vue partagée, incorporation d'une vue partagée dans une autre vue
- 22. En utilisant g ++, comment puis-je créer un lien avec une bibliothèque créée avec gcc?
- 23. Une bibliothèque statique XCode peut-elle nécessiter un lien avec une bibliothèque dynamique?
- 24. Comment configurer CMake pour créer une bibliothèque pour l'iPhone
- 25. par injection de dépendance dans une bibliothèque
- 26. Nombre (*) en utilisant la bibliothèque d'entreprise
- 27. fonction de modèle transmis à la bibliothèque partagée (C++)
- 28. Exportation de symboles de bibliothèque partagée de manière croisée?
- 29. comment utiliser ma propre bibliothèque dynamique dans linux (Makefile)
- 30. Une bibliothèque de maillages Java?
Je ne m'attendrais à aucun problème. l'outil serait lié à libpi, et si libpi a besoin d'une autre bibliothèque, il se chargera de le charger à l'exécution lui-même. l'outil ne devrait pas s'en soucier. –