7

ライブラリ、特に Xcode 4.2.1 の SOIL (Simple OpenGL Image Library) を使用しようとしています。Build Phases -> Link Library with Libraries の下で、SOIL zip アーカイブに付属するすべての .h および .c ファイルを追加します。

プロジェクトをビルドすると、追加された .h および .c ファイルごとに次のエラー メッセージが表示されます。

警告: ファイル '/Users/saw/XcodeProjects/Assignment01 copy/Assignment01/image_DXT.c' をスキップしています (フレームワークとライブラリのビルド フェーズで予期しないファイル タイプ 'sourcecode.cc' が発生しました)

およびリンカ エラー:

「_SOIL_load_OGL_texture」、参照元: main.o の Init() アーキテクチャ x86_64 のシンボルが見つかりません Clang: エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用します)

4

2 に答える 2

9

.hファイルと.cファイルはライブラリではありません。.cファイルをコンパイルフェーズに追加し、#import必要に応じて.hファイルのみを追加します。

リンクを確認するために、次のことを行いました。

  • 新しいMacCocoaアプリケーションを作成します。
  • SOILsrc フォルダーから10個のファイルを追加します:SOIL.c、image_DXT.h、stbi_DDS_aug.h、SOIL.h、image_helper.c、stb_image_aug.c、stbi_DDS_aug_c.h、image_DXT.c、image_helper.h、およびstb_image_aug.h。
  • それらを私のプロジェクトにコピーするようにXcodeに指示します。
  • アプリデリゲートのapplicationDidFinishLaunching:メソッドに1行追加します SOIL_load_OGL_texture( "img_test.png", SOIL_LOAD_AUTO, SOIL_CREATE_NEW_ID, 0 );
  • 実行するためのターゲットを構築します。

データ変換に関するさまざまなコンパイラ警告がありますが、これらの手順により、リンカエラーのない実行可能ファイルが生成されます。

于 2012-12-15T15:50:29.743 に答える
1

次のように、「その他のリンカー フラグ」でフレームワークの名前に -framework を追加してみてください。

-framework SOIL
于 2012-12-16T21:35:49.063 に答える