我正在尝试使用 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 进行编译。
有什么想法吗?
答案 0 :(得分:3)
我将答案作为评论发布,但如果将来有人遇到类似的问题,这就是解决方案。
错误“未定义的引用”表示存在已定义的原型,但没有找到定义。最常见的是,您没有链接到具有该定义的库。
在作者的案例中,他正在链接到一个用于x86_64的库,但他的目标应用程序是i686,因此链接器找不到他的目标的引用。链接到他的目标的正确库解决了他的问题。