0

我正在尝试在 Windows 7 上安装 Qt 5.1 的SDL 库,但我被卡住了。我是一个使用外部库的新手,所以请多多包涵,我认为这种设置非常基本。

我下载了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 退出状态

4

2 回答 2

0

用 SDL 和 g++ 编译找不到 -lSDLmain 等

使用 SDL 时未定义对 WinMain@16 的引用

我相信其中之一也适用于您的问题。

于 2013-08-10T22:33:23.093 回答
0

应防止 SDL 重载 main 方法。为此,请在包含 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

于 2015-12-22T12:52:40.097 回答