我正在处理一个仅与旧版本的共享系统库兼容的 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 ?根据文档,您应该可以使用完整路径指定您的库。
关于c - 如何强制 Inline::C 链接到旧库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7126439/