2012-09-19 20 views
8

私のアプリケーションにSDLとSDL_ttfフレームワークを追加しようとしています。通常の方法で行っています:「リンクライブラリとバイナリ」セクションに追加し、コピーファイルフェーズを追加しましたそれらをFrameworksディレクトリにコピーします。これは、組み込みフレームワークを持つアプリケーションバンドルを作成します。私は、アプリケーションを実行するときしかし、私はこのエラーを取得する:アプリはそのバンドルに埋め込まれているにもかかわらず、フレームワークを見つけることができるようにMac Appバンドルにフレームワークを埋め込む

dyld: Library not loaded: @rpath/SDL_ttf.framework/Versions/A/SDL_ttf Referenced from: /Users/matthew.davies/Library/Developer/Xcode/DerivedData/MacHub-ambfqujqxbxyiqapaoctvsucpdeu/Build/Products/Release/MacHub.app/Contents/MacOS/MacHub Reason: image not found

は私が行うには他に何かわかりません。

どのようなアイデアをお願いしますか?

答えて

5

私はウェブページのコメントに理由を発見しました。私は "Runpath Search Paths"ビルド設定を "@loader_path /../Frameworks"に設定し、フレームワークを見つけ出す必要がありました。

アプリケーションバンドルのFrameworksディレクトリでフレームワークが自動的に検索されないのはなぜ私にとっては完全な謎ですか?あなたはAppleを聞いていますか? :)

+1

Appleが推奨する方法を構築すると、最初に '@loader_path /../ Frameworks/SDL.framework'を探してしまうので、検索パスには必要ないでしょう。これは、あなたのアプリが間違ったバージョンのフレームワークにリンクされることを保証しないので、より安全なソリューションです。彼らが推薦するようなことをやっていなければ、すべての種類の低レベルの詳細を学ばなければなりません。 (おそらくあなたが本当に望むのは 'install_name_tool'ですが、あらかじめ知っていなければあなた自身のためにそれを見つけ出す可能性は低いです...) – abarnert

+1

本当の問題は、Appleが非常に簡単な「使い始め」フレームワークの低レベルの詳細と、それがどのように機能するかについての詳細はありません。 – abarnert

+0

私のプロジェクトでは、実行可能ファイルは/ Library/FrameworksとアプリケーションのContents/Frameworksフレームワークの両方を取り上げていました。ライブラリの選択が未定義であることが警告されました(実際には、この構成ではSDL_Mixerは機能しませんでした)。このヒントもこの問題を解決します。 – Justin

関連する問題