我正在尝试使用 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 进行编译。
有什么想法吗?
最佳答案
我将答案作为评论发布,但如果将来有人遇到类似的问题,这里是解决方案。
错误“ undefined reference ”意味着存在定义的原型(prototype),但找不到定义。最常见的是,您没有链接到具有定义的库。
在作者的例子中,他链接到一个用于 x86_64 的库,但他的目标应用程序是 i686,因此链接器找不到他的目标的引用。链接到他的目标的正确库解决了他的问题。
关于windows - Qt Creator 对 SDL_Init 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19691553/