2011-08-19 20 views
3

我正在處理一個只與舊版本的共享系統庫兼容的Perl模塊。恰巧我的系統上有舊版本的庫,但我無法弄清楚如何強制Perl的Inline::C與舊版庫連接,而無需刪除當前的最新庫。如何強制Inline :: C鏈接到較舊的庫?

我試圖用Device::USB,這與系統庫libusb 0.1兼容,但不兼容libusb 1.0。我的系統確實安裝了libusb 1.0libusb 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等可以應用。

回答

1

您是否嘗試過使用Inline :: C配置選項LIBS?根據文檔,你應該能夠用完整的路徑指定你的lib。