我正在处理只与共享系统库的旧版本兼容的Perl模块。碰巧我的系统上有旧版本的库,但是我不知道如何在不删除当前最新库的情况下强制Perl的Inline::C
与该旧库链接。
我正在尝试使用Device::USB
,它与系统库libusb 0.1
兼容,但与libusb 1.0
不兼容。我的系统确实安装了libusb 1.0
和libusb 0.1
,但是make test
在尝试安装Device::USB
模块时始终失败。此故障似乎是由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
等传统技巧。
最佳答案
您是否尝试过使用Inline :: C配置选项LIBS?根据文档,您应该能够使用完整路径指定lib。
关于c - 如何强制Inline::C链接到较旧的库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7126439/