我已经尝试了几个小时来启动并运行测试SDL程序,但无论我尝试什么,它都会在启动时立即终止。
我的代码:
#include <iostream>
#include <SDL.h>
#undef main
using namespace std;
int main(int argc, char *argv[]) {
const int WIDTH = 800, HEIGHT = 600, SDLWP = SDL_WINDOWPOS_UNDEFINED;
if(SDL_Init(SDL_INIT_VIDEO) < 0) {
cout << "SDL not working." << endl;
}
cout << "SDL working properly." << endl;
SDL_Window *window = SDL_CreateWindow("Test", SDLWP, SDLWP, WIDTH, HEIGHT, SDL_WINDOW_SHOWN);
if(window == NULL) {
SDL_Quit();
}
bool quit = false;
SDL_Event event;
while(!quit) {
while(SDL_PollEvent(&event)) {
if(event.type == SDL_QUIT) {
quit = true;
}
}
}
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
我已经让程序通过这个代码实际做了一些事情:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
cout << "SDL working properly." << endl;
}
另外,关于#undef主要部分,我需要它,否则,程序会认为我正在调用SDL_main。
如果有帮助,这是图书馆搜索路径:
C:\ Users \(我的用户名)\ Desktop \ SDL2-2.0.4 \ i686-w64-mingw32 \ lib
图书馆本身按顺序从上到下编写:
mingw32
SDL2main
SDL2
没有其他库路径不会给我编译错误,除了:
C:\ Users \(我的用户名)\ Desktop \ SDL2-2.0.4 \ lib \ x86
所以似乎问题的根源是:
#include <SDL.h>