我正在處理一個只與舊版本的共享系統庫兼容的Perl模塊。恰巧我的系統上有舊版本的庫,但我無法弄清楚如何強制Perl的Inline::C
與舊版庫連接,而無需刪除當前的最新庫。如何強制Inline :: C鏈接到較舊的庫?
我試圖用Device::USB
,這與系統庫libusb 0.1
兼容,但不兼容與libusb 1.0
。我的系統確實安裝了libusb 1.0
和libusb 0.1
,但在嘗試安裝Device::USB
模塊時make test
始終失敗。這種故障似乎是由Perl鏈接到libusb 1.0
庫而不是libusb 0.1
庫導致的。
在/usr/lib
我可以看到,我想要使用的libusb
的特定版本(libusb-0.1.so.4
)就在那裏。我需要做什麼來特別鏈接到這個庫,而不是通用的libusb.a
?編輯Makefile.PL
?編輯.pm
文件?通過額外的開關make
?
我一直在閱讀鏈接器,但這個額外的Inline::C
層真的混淆了何時何地使用傳統技巧export LD_LIBRARY_PATH=/usr/local/my_lib:$LD_LIBRARY_PATH
,-rpath
等可以應用。