c++、SDL、および SDL イメージを使用してゲームを作成しようとしています。Code::Blocks を IDE として使用していますが、問題が発生しています。
最新の mingw SDL 開発ファイルと最新の mingw SDL イメージ開発ファイルをダウンロードしました。
すべての SDL イメージのものを SDL のものと同じディレクトリに配置しました (一方を他方にマージします)。
x86_64-w64-mingw32/include および x86_64-w64-mingw32/lib ディレクトリを Code::Blocks 検索ディレクトリに追加しました。
私のリンカー設定は次のとおりです。
-lmingw32
-lSDL2main
-lSDL2
-lSDL2_image
-lopengl32
-lglu32
(明らかに、私も openGL を使用していますが、ここでは関係ないと思います)。
私が知る限り、私は正しい #includes を持っています:
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include <SDL2/SDL_opengl.h>
しかし、私はまだエラーが発生しています:「IMG_Load」への未定義の参照
ビルドログは次のとおりです。
obj\Release\gfx_Texture.o:gfx_Texture.cpp:(.text+0xd7): undefined reference to `IMG_Load'
obj\Release\gfx_Texture.o:gfx_Texture.cpp:(.text+0x1dd): undefined reference to `SDL_FreeSurface'
obj\Release\gfx_Texture.o:gfx_Texture.cpp:(.text+0x1f4): undefined reference to `SDL_FreeSurface'
g:/program files(x86)/codeblocks/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: obj\Release\gfx_Texture.o: bad reloc address 0x4 in section `.text.startup'
g:/program files (x86)/codeblocks/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: final link failed: Invalid operation
そして実際のコード:
SDL_Surface* image = IMG_Load(file);
file は char* です。
SDL 1.2 と比較して、SDL 2.0 での SDL_Surfaces の動作にいくつかの変更があったことを理解しています (1.2 から 2.0 と MVSC から C::B の両方に移行しようとしています)。それをしますか?IMG_Load を間違って使用していますか?
ご協力いただきありがとうございます。不足している情報があれば、リクエストに応じて提供します。
SDL の最新バージョンは 2.0.1 ですが、SDL_image の最新バージョンは 2.0.0 です。それらのバージョンを一致させる必要がありますか?