我正在处理只与共享系统库的旧版本兼容的Perl模块。碰巧我的系统上有旧版本的库,但是我不知道如何在不删除当前最新库的情况下强制Perl的Inline::C与该旧库链接。

我正在尝试使用Device::USB,它与系统库libusb 0.1兼容,但与libusb 1.0不兼容。我的系统确实安装了libusb 1.0libusb 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/

10-12 02:58