我已经学习 SDL 一段时间了,现在我决定尝试 SDL2 ,主要是尝试硬件加速。但问题是,我根本无法编译它,而相同的代码使用 SDL1.2 正确编译。
示例代码为:
#include "SDL/SDL.h"
int main( int argc, char *args[] )
{
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Quit();
return 0;
}
使用原始链接器设置:-lmingw32 -lSDLmain -lSDL
一切都在编译。
但是,只要我将#include "SDL/SDL.h"
更改为#include "SDL2/SDL.h"
并将链接器设置更改为
-lmingw32 -lSDL2main -lSDL2
我得到了错误:
obj\Debug\main.o||In function `SDL_main':|
main.cpp|5|undefined reference to `SDL_Init'|
main.cpp|8|undefined reference to `SDL_Quit'|
libmingw32.a(main.o):main.c:(.text.startup+0xa7)||undefined reference to `WinMain@16'|
我在 C中安装了 C:/SDL-1.2.15 和 SDL2 SDL1.2 : / SDL2
在搜索目录中,我添加了SDL1.2和SDL2 Include和Lib文件夹。
答案 0 :(得分:1)
我不确定这是否可行,但如果您使用的是“x86_64-w64-mingw32”文件夹,请尝试使用另一个(i686),这对我有所帮助。我和你有完全相同的问题,并且使用字面意思,与你一样,使用相同的测试代码。我希望这会有所帮助。