我正在尝试在Windows 7上为Qt 5.1安装SDL library,但我被卡住了。我是一个使用外部库的新手,所以请耐心等待,我认为这种设置非常基础。
我下载了 SDL-devel-1.2.15-mingw32.tar.gz(Mingw32)文件,将其解压缩,并在我的项目PRO文件中添加:
INCLUDEPATH + =“C:\ SDL \ SDL-1.2.15 \ include \ SDL”
LIBS + =“C:\ SDL \ SDL-1.2.15 \ bin \ SDL.dll”
现在当我尝试编译它时:
#include <iostream>
#include <stdlib.h>
#include "SDL.h"
using namespace std;
int main()
{
SDL_Init( SDL_INIT_EVERYTHING );
cout << "Hello World!" << endl;
return 0;
}
我明白了:
crt0_c.c:-1:错误:未定义引用`WinMain @ 16'
collect2.exe:-1:错误:错误:ld返回1退出状态
答案 0 :(得分:0)
Compiling with SDL and g++ cannot find -lSDLmain etc
Undefined reference to WinMain@16 when using SDL
我相信其中一个也适用于您的问题。
答案 1 :(得分:0)
应该防止SDL重载主方法。为此,请在包含SDL标头的任何位置添加以下代码。
#include <SDL/SDL.h>
#include <SDL/SDL_thread.h>
#ifdef __MINGW32__
#undef main /* Prevents SDL from overriding main() */
#endif
为了使它适合你的情况,你的project.pro文件应该是这样的:
LIBS + = -LC:\ SDL-devel-1.2.15-mingw32 \ SDL-1.2.15 \ lib -llibSDL
INCLUDEPATH + = C:\ SDL-devel-1.2.15-mingw32 \ SDL-1.2.15 \ include
由于它是我的代码的常规,我在Windows 8上使用sdl版本1.2.15,32位用于mingw编译器。
参考:
要查找有关SDL ffmpeg集成的优秀教程,您可以参考dranger。