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

主.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编译。

任何想法?

4

1 回答 1

3

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

错误“未定义的引用”意味着有一个定义的原型,但没有找到定义。最常见的是,您没有链接到具有定义的库。

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

于 2013-11-06T13:14:59.977 回答