4

SDL2(Ubuntu 13.04 x64上)の使用を開始したばかりで、SDL_imageを使用するまではすべてうまくいきました。

画像をロードするために、次のコードを追加しました。

SDL_Texture* LoadImage(std::string file)
{
    SDL_Texture* tex = NULL;
    tex = IMG_LoadTexture(ren, file.c_str());
    if (tex == NULL)
        throw std::runtime_error("Failed to load image: " + file + IMG_GetError());
    return tex;
}

-lSDL2 および -lSDL2_image とリンクすると、次の未定義の参照が取得されます。

g++  -o "SDL"  ./src/main.o   -lSDL2 -lSDL2_image
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/libSDL2_image.so: riferimento non definito a "SDL_malloc"
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/libSDL2_image.so: riferimento non definito a "SDL_memcmp"
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/libSDL2_image.so: riferimento non definito a "SDL_strncasecmp"
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/libSDL2_image.so: riferimento non definito a "SDL_memset"
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/libSDL2_image.so: riferimento non definito a "SDL_free"
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/libSDL2_image.so: riferimento non definito a "SDL_memcpy"
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/libSDL2_image.so: riferimento non definito a "SDL_sscanf"
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/libSDL2_image.so: riferimento non definito a "SDL_isspace"
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/libSDL2_image.so: riferimento non definito a "SDL_realloc"
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/libSDL2_image.so: riferimento non definito a "SDL_strcmp"
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/libSDL2_image.so: riferimento non definito a "SDL_strncmp"
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/libSDL2_image.so: riferimento non definito a "SDL_snprintf"
collect2: error: ld returned 1 exit status

私は何を間違っていますか??

4

2 に答える 2

1

ライブラリをダウンロードしてコンパイル/インストールしましたか? これを試して:

sudo apt-get install libsdl-dev

その後、次のコマンドを使用して、SDL に対してコンパイルおよびリンクできます。

gcc `pkg-config --libs --cflags sdl` <sourcefile.c>
于 2013-08-19T17:14:48.063 に答える