この 2 日間、私は多くの調査を行いました。この Web サイトだけで、少なくとも 20 の回答済みの質問を読み終えたに違いありません。どの解決策も私にはうまくいかないようです。アプリケーションで 5 つのフレームワークを使用していますが、コンピューターで問題なく実行できます。アプリケーションを別のコンピューターで実行しようとすると、ライブラリーのロード中にエラーが発生します。
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Application Specific Information:
dyld: launch, loading dependent libraries
Dyld Error Message:
Library not loaded: /Users/USER/*/Allegro-5.0.framework/Versions/5.0.7/Allegro-5.0
Referenced from: /Volumes/VOLUME/Pong.app/Contents/MacOS/../Frameworks/AllegroMain-5.0.framework/AllegroMain-5.0
Reason: image not found
次の手順を実行しました。
- フレームワークをアプリケーション バンドルにコピーするコピー ファイル ビルド フェーズがあります。
- install_name_tool を使用して、インストール パスを @executable_path/../Frameworks に変更しました。
- @executable_path/../Frameworks をランパス検索パスとして設定しました
- フレームワークは私のプログラムにリンクされています
dyld が最初のフレームワーク (Allegro-5.0) を正常にロードしたように見えますが、2 番目のフレームワーク (AllegroMain-5.0) をロードしようとすると、正常にロードされていないと考えられます。
追加情報:
- 現在OSX 10.7.5を実行しています
- Xcode バージョン 4.6
私のアプリケーション バンドルのコンテンツ フォルダーはどのように見えるか: コンテンツのスクリーンショット
ライブラリとコピー ファイルのビルド フェーズを含むリンク バイナリ: Xcode のスクリーンショット
エラーの原因について、私が正しいとは断言できません。私はすでに allegro.cc に支援を求めましたが、基本的に、フレームワーク固有の問題については支援できないと言われました。これを理解するための助けに本当に感謝します!
編集
これが問題かどうかはわかりませんが、もう少し考えてみたところ、ヘッダーの検索パスに問題がある可能性があります。アプリケーションを実行するには、フレームワークごとに新しいヘッダー検索パスを作成する必要があります。現在、次の 5 つの個別のヘッダー検索パスが設定されています。
/Library/Frameworks/Allegro-5.0.framework/Versions/Current/Headers
/Library/Frameworks/AllegroMain-5.0.framework/Versions/Current/Headers
/Library/Frameworks/AllegroDialog-5.0.framework/Versions/Current/Headers
/Library/Frameworks/AllegroFont-5.0.framework/Versions/Current/Headers
/Library/Frameworks/AllegroTTF-5.0.framework/Versions/Current/Headers
runpath 検索パスがどのように機能するか正確にはわかりません。コードが私のヘッダーを見つけることを許可しますか? エラー メッセージは、問題がこれに関連しているようには見えませんが、これは私が思いついた別の考えでした。
4/14 更新
コンピューターでも奇妙な動作をするようになったので、何かを台無しにしました。フレームワークを再インストールしましたが、新しいエラーが発生しました。
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Application Specific Information:
dyld: launch, loading dependent libraries
Dyld Error Message:
Library not loaded: /opt/local/lib/libfreetype.6.dylib
Referenced from: /Volumes/VOLUME/Pong.app/Contents/MacOS/../Frameworks/AllegroTTF-5.0.framework/Versions/5.0.10/AllegroTTF-5.0
Reason: image not found
私の質問はより一般的になりました.libfreetypeをアプリケーションにバンドルする場合、フレームワークにそれを見つける場所をどのように伝えることができますか?