古いバージョンの共有システム ライブラリとのみ互換性のある Perl モジュールを扱っています。たまたま私のシステムに古いバージョンのライブラリがありますがInline::C
、現在の最新のライブラリを削除せずに Perl をその古いライブラリと強制的にリンクさせる方法がわかりません。
Device::USB
システム ライブラリ と互換性があるを使用しようとしていますが、 とは互換性libusb 0.1
がありませんlibusb 1.0
。私のシステムにはインストールされていますが、モジュールlibusb 1.0
を インストールしようとすると一貫して失敗します。この失敗は、Perl がライブラリーではなくライブラリーにリンクしていることが原因のようです。libusb 0.1
make test
Device::USB
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