【问题标题】:Installing/using SDL for Qt为 Qt 安装/使用 SDL
【发布时间】:2013-08-10 21:43:09
【问题描述】:

我正在尝试在 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: error: undefined reference to `WinMain@16'

collect2.exe:-1: 错误:错误:ld 返回 1 个退出状态

【问题讨论】:

    标签: qt dll sdl


    【解决方案1】:

    【讨论】:

    • 添加链接器路径和那些编译器标志的语法是什么? (我会问那些线程,但它说我需要 50 个代表。)
    • 嘿嘿,成功了。谢谢你处理我的笨拙。
    • 我们都曾经是菜鸟。在大多数非主题上,我们仍然是并且将永远是。 :-)
    【解决方案2】:

    应防止 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

    【讨论】:

      猜你喜欢
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      相关资源
      最近更新 更多