【问题标题】:How can I force Inline::C to link to an older library?如何强制 Inline::C 链接到旧库?
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-26
      • 1970-01-01
      • 2015-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多