14

私はアプリを持っています、それを呼び出しますAnimal.app。そのContents/Frameworksフォルダの中にはフレームワークがありますMammal.framework。そしてVersions/A/Frameworks、フレームワークのフォルダ内に、がありますdog.dylib。のインストール名dog.dylibは@rpath/dog.dylibです。"Runpath Search Paths"フレームワークの設定については、を指定し@loader_path/../Frameworksました。(その最後の設定の私の理由は、dylibの「ローダー」がパスにあるフレームワークのバイナリになるということMammal.framework/Versions/A/Mammalです。)

実行時にエラーメッセージが表示されます。

Dyld Error Message:
  Library not loaded: @rpath/dog.dylib
  Referenced from: /Volumes/VOLUME/*/Animal.app/Contents/MacOS/../Frameworks/Mammal.framework/Versions/A/Mammal
  Reason: image not found

Appleの「Run-PathDependentLibraries」ドキュメントとMikeAshのブログ投稿を読んだの@rpathですが、それでも自分が何を間違っているのかわかりません。

4

1 に答える 1

8

正しいランパス検索パスは@loader_path/Frameworksです。私が見逃していたのは、@ loader_pathがローダーへのフルパスではなく、そのパスから最後のコンポーネントを差し引いたものを表していることです。 マイクアッシュのブログ投稿はそれを言っています、しかし私はどういうわけかそれを逃しました。したがって、フレームワークの場合、@loader_pathはAで終わります。

于 2012-10-24T21:47:14.760 に答える