以下は私のシナリオです、
私のアプリケーションでは、libopus ライブラリを使用する必要がありました。ダウンロードしてインストールし、コンパイルします --> インストール手順は、他のオープン ソース ライブラリと同様に正常です。
libopus.a を自分のアプリケーションにリンクしました。私のやり方は、デフォルトでは /usr/local/lib にインストールされるので、そこからドラッグしてアプリケーションに追加します。
私のマシンでは問題なく動作し、エラーはありませんでした。
別のマシンでは、このライブラリを静的に含めたのでスムーズに実行されることを期待していましたが、次のようにスローエラーが発生しました
dyld: Library not loaded: /usr/local/lib/libopus.0.dylib
だから私は、libopus.aがどういうわけかlibopus.0.dylibも動的に含むと結論付けました、
ビルド設定にコピー フェーズを追加できないため、../Framework フォルダーにコピーされます。
otool -L libpus.a を実行すると、次の結果が表示されます
otool -L /usr/local/lib/libopus.a
Archive : /usr/local/lib/libopus.a
/usr/local/lib/libopus.a(bands.o):
/usr/local/lib/libopus.a(celt.o):
/usr/local/lib/libopus.a(cwrs.o):
/usr/local/lib/libopus.a(entcode.o):
/usr/local/lib/libopus.a(entdec.o):
/usr/local/lib/libopus.a(entenc.o):
/usr/local/lib/libopus.a(repacketizer.o):
dylibライブラリに依存しているため表示されません
今、私の質問は、
アプリケーションに最初にこのパスを調べるように指示する方法です
次のオプションを試しましたが、
install_name_tool ですが、他のマシンでも動作するようです。したがって、ユーザーはこのスクリプトを実行する必要があります。開発者ではありません。
xcodeでいくつかのオプションを設定して、RUNTIME Searchパスを設定してその特定のdylibを見つけようとしていますが、これまでのところ成功していません