0

学习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:/SDL-1.2.15安装了 SDL1.2 ,在C:/SDL2安装了SDL2

在搜索目录中,我添加了 SDL1.2 和 SDL2 Include 和 Lib 文件夹。

4

1 回答 1

1

我不确定这是否可行,但如果您使用的是“x86_64-w64-mingw32”文件夹,请尝试使用另一个文件夹(带有 i686 的文件夹),这对我有帮助。我遇到了与您完全相同的问题,并且从字面上使用与您相同的测试代码。我希望这有帮助。

于 2013-07-24T23:21:28.880 回答