2013-08-18 49 views
3

我刚开始使用SDL2(在Ubuntu 13.04 x64上),一切都很顺利,直到我尝试使用SDL_image。SDL2 - 未定义的引用 - Ubuntu

我加了这段代码,加载图片:

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 

我在做什么错??

+0

以防万一,这是不是可以为[ubuntu.se]一个问题? – brasofilo

+0

我实际上不确定问题是否与Ubuntu相关,或者如果我没有正确链接,或者类似的东西。 – Sylar

+0

我也不是,这不是我的工作领域。查看他们的[帮助中心](http://askubuntu.com/help)和/或研究网站。 – brasofilo

回答

1

你下载并编译/安装了库吗? 试试这个:

sudo apt-get install libsdl-dev 

之后,你可以编译和对SDL链接:

gcc `pkg-config --libs --cflags sdl` <sourcefile.c> 
+0

感谢您的答案! ...我编译了库... libsdl-dev已经安装好了,它会安装1.2版本 – Sylar

相关问题