SDL2 无法正确链接
SDL2 won't link properly
我使用的是Code::Blocks,这是我的代码:
#include "SDL2/SDL.h"
int main(int argc, char* args[]) {
SDL_Init( SDL_INIT_EVERYTHING );
SDL_Quit();
return 0;
}
我的建筑风格:
mingw32-g++.exe -o C:..main.exe C:..main.o -lmingw32 -lSDL2main -lSDL2
得到它:
undefined reference to "SDL_Init"
undefined reference to "SDL_Quit"
我很确定链接器找到了libs,因为如果我把它们改成随机的,它会抱怨"找不到任何东西"
有点晚了,但我只是在Linux上偶然发现了一个类似的问题。
这会导致链接器错误:
g++ $(pkg-config --cflags --libs sdl2) sdl2test.cpp
sdl2test.cpp:(.text+0x11): undefined reference to `SDL_Init'
sdl2test.cpp:(.text+0x20): undefined reference to `SDL_GetError'
sdl2test.cpp:(.text+0x34): undefined reference to `SDL_Quit'
这项工作:
g++ sdl2test.cpp $(pkg-config --cflags --libs sdl2)
即使这是一个Linux问题,我也是通过谷歌发布这篇文章的。
也许它可以帮助其他人:我在Windows XP 32位代码块上遇到了同样的问题:Mingw+SDL2,我在将正确的SDLFolders(include,lib…)复制到Mingw文件夹后修复了它。我陷入这个陷阱的原因是,从DEV包中命名SDL根文件夹有点令人困惑。您得到了一个"x86_64-w64-mingw32"文件夹,它是用于64位编译器的,而"i686-w64-minw32"是用于32位编译器的(就像大多数编译器一样)。我把这件事搞砸了,因为"x86…"的命名,仍然不知道他们为什么要这样写。
覆盖正确的文件后,它对我来说很好。
你确定你的路径中有你的库吗?
尝试将-LC:/whatever/
与实际包含libSDL2.a
和其他*.a
的文件夹一起添加到编译器的参数中。
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- CMake-按正确顺序将项目与C运行时对象文件链接
- 从链接列表c++中删除一个项目
- 有根的二进制搜索树.保留与其父级的链接
- 读取文件的最后一行并输入到链接列表时出错
- 静态数据成员的问题-修复链接错误会导致编译器错误
- node-gyp 在 macOS 上未正确链接库
- 基于boost的程序的静态链接——zlib问题
- 无法链接 CMake 中的本地库
- 内联函数中具有内部链接的全局变量
- 链接阶段在Ubuntu上失败,但在MacOS上失败
- 将 SDL2 与 CMake 链接起来
- 为什么在使用 SDL2 时仍然收到'undefined reference'链接器错误?
- 无法在 DLL 中链接 SDL2-static.lib
- 如何在 CMake 中链接 SDL2?
- 带有 mingw-w64 的 SDL2 - 链接器找到 libSDL2.a,但抛出"undefined reference"错误
- C++SDL2-无法理解的链接错误
- SDL2 无法正确链接
- 在QtCreator中链接SDL2
- 链接器错误从SDL2在我的项目