1

dlopen を使用して .dylib ファイルをロードするための @rpath を見つけたので、それらを理解するための助けが必要です。OSX マシンで Xcode 3.2.5 を使用しています。

他の .dylib を呼び出し、互いに呼び出す .dylib がいくつかあります。@rpath は、ロードされた最初の .dylib に対して機能するようですが、@rpath を使用して以前に検出およびロードされた最初の .dyblib ファイルを使用する別の .dylib で dlopen 呼び出しを行うと、dlopen は、それが可能であると言って失敗します。元の .dylib を見つけません。

@rpath は、dlopen で使用されているファイルに対してのみ機能しますか?それとも、開かれている dylib ファイル内の依存関係を解決するためにも使用されていますか?

アップデート:

私のさらなる発見により、相互依存関係を @rpath を持つように変更するために install_name_tools を使用するようになりました。これはこれを行う正しい方法ですか?

4

1 に答える 1

1

数日間の調査と試行錯誤の後、相対パスを使用して検索する予定のすべてのライブラリのインストール名として @rpath/dylibName.dylib を使用して、すべての .dylib で -install_name を実行する必要があることがわかりました。

于 2011-07-21T07:13:30.877 に答える