ubuntu - SDL2 - undefined reference - Ubuntu

标签 ubuntu reference sdl undefined

我刚开始使用 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,我得到了这个 undefined reference :

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

我做错了什么??

最佳答案

更改库的顺序可能会解决问题。

g++  -o "SDL"  ./src/main.o -lSDL2_image -lSDL2 

引用:linker tells me it can't resolve symbols, but they're there?

关于ubuntu - SDL2 - undefined reference - Ubuntu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18304650/

相关文章:

python - brew link sdl 无法链接,给出权限被拒绝错误

linux - gcloud 始终使用默认凭据

python - 在 Docker 容器 Django 中使用 Pip 安装软件包时权限被拒绝

r - 安装软件包 R (Ubuntu)

Javascript - 如何取消底层引用?

sdl - 函数调用中参数前的 @ 在 Pascal 中意味着什么

docker - 无法连接到转发任何端口的 docker 端口

c++ - 在 C++ 中的递归函数中使用引用参数

c# - 命名空间 'DataSetExtensions' 中不存在类型或命名空间名称 'System.Data'(是否缺少程序集引用?)

python - 奇怪的 sdl 对无关窗口的副作用