1

SDL_ttf フレームワークを xCode 4.6 に追加しようとしています。ただし、その関数の一部を使用すると、エラーが発生します。

アーキテクチャ x86_64 の未定義シンボル: "_TTF_CloseFont"、参照元: main.o の clean_up() "_TTF_Init"、参照元: main.o の init() "_TTF_OpenFont"、参照元: main.o の load_files() "_TTF_Quit" "、参照元: main.o の clean_up() "_TTF_RenderText_Solid"、参照元: main.o の _SDL_main ld: アーキテクチャ x86_64 のシンボルが見つかりません。clang: エラー: リンカー コマンドが終了コード 1 で失敗しました (使用 -v呼び出しを見るために)

使用されるものは、タイプ TTF_font*、TTF_Init()、TTF_OpenFont()、TTF_RenderText_Solid、TTF_CloseFont()、および TTF_Quit() です。

この問題を解決するにはどうすればよいですか?

以前に SDL フレームワークと SDL_image フレームワークを追加しましたが、それらはすべて動作するまでに多少の苦労がありました。ほとんどの場合、xcode がヘッダーを見つけられないことが原因でした。Stackoverflow はそのほとんどを助けてくれました、ありがとう。しかし、今回は長く苦労しており、助けを求めなければなりません。「clang: error: linker command failed with exit code 1 (use -v to see invocation)」という問題が以前にスタックオーバーフローで発生しましたが、この状況に適用できる応答はありませんでした。また、xCode でフレームワークをセットアップするために、さまざまなガイドに従ってみました。SDLとSDL_imageの両方を機能させることができたので、それは問題ではないと思います。しかし、このチュートリアルを使用してそれらを追加したのが役立つ場合: http://lazyfoo.net/SDL_tutorials/lesson03/mac/xcode/index.php

私は現在、LazyFoos SDL チュートリアルに従っていますが、上記の問題により、この部分http://lazyfoo.net/SDL_tutorials/lesson07/index.phpに行き詰まりました。

(関係のない小さな質問です。コンパイラにメインの SDL フレームワークをコンパイルさせるには、ビルド段階でコンパイル ソースに -fno-objc-arc を追加する必要がありました (プロジェクト内の単一ファイルに対して ARC を無効にするにはどうすればよいですか? )。それが何をしたのかわかりませんが、プログラムを正常に実行できるようになりましたが、これが戻ってきて後で私を噛むことはありますか?)

4

2 に答える 2

0

これらのエラーは x86_64 アーキテクチャでのみ表示されますか? 最後に確認したところ、SDL ライブラリは 64 ビット用にビルドされていません。素早く簡単に修正するには、ターゲット アーキテクチャを i386 に変更するだけのようです。i386 は、64 ビット バージョンの Mac OS X でも問題なく動作します。

アプリケーションを 64 ビット用にビルドしたい場合は、MacPortsを使用して SDL_ttf.framework の 64 ビット ビルドを取得してみてください。

sudo port install libsdl_ttf-framework
于 2013-02-01T20:47:38.743 に答える