我使用旧版本的 SDL2 已经有一段时间了,从来没有遇到任何问题;但现在看起来事情没有正确链接,我不知道为什么。
这是整个程序:
#include <stdlib.h>
#include <stdio.h>
#include <SDL2/SDL.h>
int main(int argc, char *argv[]) {
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Window *win = nullptr;
SDL_CreateWindow("test", 100, 100, 100, 100, SDL_WINDOW_SHOWN);
return 0;
}
我正在使用 codeblocks+mingw32,这就是我想象的构建日志的相关部分:
mingw32-g++.exe -LE:\...\SDL2-2.0.0\x86_64-w64-mingw32\lib -LE:\Programs\Code-Blocks\lib -o bin\Debug\SDL2test.exe obj\Debug\main.o -pg -lgmon -lmingw32 -lSDL2main -lSDL2 -lSDL2.dll -lgdi32 -lwinmm -luser32
以下是错误:
undefined reference to `SDL_Init'
undefined reference to `SDL_CreateWindow'
undefined reference to `WinMain@16'
为了比较,这里是一个程序的构建日志,该程序使用几个月前的 SDL2 构建可以很好地编译:
mingw32-g++.exe -LE:\...\SDL2\lib -LE:\Programs\Code-Blocks\lib -o bin\Debug\SDL2.exe obj\Debug\main.o -lSDL2_image -lSDL2_ttf -pg -lgmon -lmingw32 -lSDL2main -lSDL2.dll -lSDL2 -lgdi32 -lwinmm -luser32