【发布时间】:2011-10-30 21:14:07
【问题描述】:
我正在处理一个仅与旧版本的共享系统库兼容的 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 等传统技巧何时/何地可以应用。
【问题讨论】:
标签: c perl unix linker inline-c