c - 如何强制 Inline::C 链接到旧库?

标签 c perl unix linker inline-c

我正在处理一个仅与旧版本的共享系统库兼容的 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 ?根据文档,您应该可以使用完整路径指定您的库。

关于c - 如何强制 Inline::C 链接到旧库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7126439/

相关文章:

linux - 当 bash 脚本以 .运算符(operator)?

c - arc4random_buf 是否有最佳批量大小?

bash - 在 bash 中检查文件扩展名的最简单方法?

c - 编写我自己的CSP(加密服务提供商)

perl - 为什么在警报信号处理程序中没有死亡杀死进程?

perl - 如何在运行时将现有的Moose角色组成一个类?

mysql - 在 mysql 选择查询中传递 perl 数组

python - Unix glob 样式模式在 Python 的 glob 模块中是否区分大小写?

c - 嵌套函数调用中如何处理 return 语句?

c - 如何写条件运算符(?:) without using else