如何强制Inline :: C链接到较旧的库?

时间:2011-08-19 19:26:08

标签: c perl unix linker inline-c

我正在处理只与旧版共享系统库兼容的Perl模块。碰巧我在我的系统上安装了旧版本的库,但我无法弄清楚如何强制Perl的Inline::C链接旧库而不删除当前的最新库。

我正在尝试使用Device::USB,它与系统库libusb 0.1兼容,但与<{1}} 不兼容。我的系统安装了libusb 1.0 libusb 1.0,但libusb 0.1在尝试安装make test模块时始终失败。这种失败似乎是由Perl链接到Device::USB库而不是libusb 1.0库引起的。

libusb 0.1我可以看到我想要使用的/usr/lib的特定版本(libusb)就在那里。如果要专门链接到此库而不是通用libusb-0.1.so.4,我需要做什么?修改libusb.a?编辑Makefile.PL个文件?将其他开关传递给.pm

我一直在阅读链接器,但这个额外的make层实际上混淆了可以应用Inline::Cexport LD_LIBRARY_PATH=/usr/local/my_lib:$LD_LIBRARY_PATH等传统技巧的时间/地点。

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用Inline :: C配置选项LIBS?根据文档,您应该可以使用完整路径指定lib。