J'ai une bibliothèque partagée que je souhaite lier un exécutable contre l'utilisation de GCC. La bibliothèque partagée a un nom non standard de la forme libNAME.so, donc je ne peux pas utiliser l'option -l habituelle. (Il se trouve également être une extension Python, et n'a donc pas de préfixe 'lib'.)Comment lier en utilisant GCC sans -l ni chemin d'accès en dur pour une bibliothèque qui ne respecte pas la convention de nommage de libNAME.so?
Je peux passer le chemin d'accès au fichier de bibliothèque directement à la ligne de commande de lien, mais cela entraîne le chemin de la bibliothèque codé en dur dans l'exécutable.
Par exemple:
g++ -o build/bin/myapp build/bin/_mylib.so
est-il un moyen de créer un lien vers cette bibliothèque sans faire le chemin à hardcoded dans l'exécutable?
Ceci, monsieur, est exactement ce que je cherchais. Merci! – kbluck
M'a beaucoup aidé, merci. –
Je trouve que cela se traduit par 'build/bin/_mylib.so' intégré dans la bibliothèque qui a été liée en utilisant' -l: '- au lieu d'incorporer juste' _mylib.so' comme il le fait normalement pour les sonames standard. Par conséquent, lorsque vous essayez de charger '_mylib.so', il recherche le chemin complet (' ldd' le montre) et ne trouve pas '_mylib.so' par lui-même. –