Comment puis-je forcer Inline :: C à créer un lien vers une ancienne bibliothèque?

Je m’occupe d’un module Perl qui est uniquement compatible avec une ancienne version d’une bibliothèque système partagée. Il se trouve que je possède l’ancienne version de la bibliothèque sur mon système, mais je n’arrive pas à comprendre comment forcer Perl Inline::C à se connecter à cette ancienne bibliothèque sans supprimer la bibliothèque actuelle à jour.

J’essaie d’utiliser Device::USB , qui est compatible avec la bibliothèque système libusb 0.1 , mais est incompatible avec libusb 1.0 . libusb 1.0 et libusb 0.1 installés sur mon système, mais le make test échoue systématiquement lors de l’installation du module Device::USB . Cet échec semble être causé par la liaison de Perl aux bibliothèques libusb 1.0 au lieu des bibliothèques libusb 0.1 .

Dans /usr/lib je peux voir que la version spécifique de libusb que je veux utiliser ( libusb-0.1.so.4 ) est là. Que dois-je faire pour libusb.a lien spécifique avec cette bibliothèque au lieu de la libusb.a générique? Modifier Makefile.PL ? Modifier les fichiers .pm ? Passer des commutateurs supplémentaires à make ?

J’ai lu sur le linker, mais cette couche supplémentaire d’ Inline::C cache vraiment quand / où les astuces traditionnelles d’ export LD_LIBRARY_PATH=/usr/local/my_lib:$LD_LIBRARY_PATH , -rpath , etc. peuvent être appliquées.

Avez-vous essayé d’utiliser l’option de configuration Inline :: C LIBS ? Selon la documentation, vous devriez pouvoir spécifier votre lib avec un chemin complet.