使用Qt Creator对SDL_Init进行未定义的引用

时间:2013-10-30 18:58:53

标签: windows qt sdl sdl-2

我正在尝试使用 Qt Creator Qt 5.1.1 )构建以下基本SDL2应用程序。

SDLTest.pro:

TARGET = SDLTest01
CONFIG   += console

TEMPLATE = app

INCLUDEPATH += C:\Users\Martin\code\libs\SDL2-2.0.1\x86_64-w64-mingw32\include
LIBS += -LC:\Users\Martin\code\libs\SDL2-2.0.1\x86_64-w64-mingw32\lib -lSDL2

SOURCES += main.cpp

main.cpp:

#include <SDL2/SDL.h>

#include <QCoreApplication>
#undef main
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    if( SDL_Init( SDL_INIT_EVERYTHING ) == -1 )
        return 1;

    return a.exec();
}

但我有以下错误:

undefined reference to `SDL_Init'

使用相应参考的相同代码可以使用 SDL 1.2 进行编译。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我将答案作为评论发布,但如果将来有人遇到类似的问题,这就是解决方案。

错误“未定义的引用”表示存在已定义的原型,但没有找到定义。最常见的是,您没有链接到具有该定义的库。

在作者的案例中,他正在链接到一个用于x86_64的库,但他的目标应用程序是i686,因此链接器找不到他的目标的引用。链接到他的目标的正确库解决了他的问题。