3

古いバージョンの共有システム ライブラリとのみ互換性のある Perl モジュールを扱っています。たまたま私のシステムに古いバージョンのライブラリがありますがInline::C、現在の最新のライブラリを削除せずに Perl をその古いライブラリと強制的にリンクさせる方法がわかりません。

Device::USBシステム ライブラリ と互換性があるを使用しようとしていますが、 とは互換性libusb 0.1がありませんlibusb 1.0。私のシステムにはインストールされていますが、モジュールlibusb 1.0 インストールしようとすると一貫して失敗します。この失敗は、Perl がライブラリーではなくライブラリーにリンクしていることが原因のようです。libusb 0.1make testDevice::USBlibusb 1.0libusb 0.1

使用したい/usr/libの特定のバージョン( ) がそこにあることがわかります。ジェネリックではなく、このライブラリに具体的にリンクするにはどうすればよいですか? 編集? ファイルを編集しますか? 追加のスイッチを?に渡します。libusblibusb-0.1.so.4libusb.aMakefile.PL.pmmake

私はリンカについて調べてきましたが、この追加のレイヤーは、 、、 などの従来のトリックをいつ/どこで適用できるかをInline::C本当に難読化します。export LD_LIBRARY_PATH=/usr/local/my_lib:$LD_LIBRARY_PATH-rpath

4

1 に答える 1

1

Inline::C 構成オプションLIBSを使用しようとしましたか? ドキュメントによると、完全なパスでライブラリを指定できるはずです。

于 2011-08-19T21:43:58.737 に答える