我正在尝试使用 * Qt Creator ( Qt 5.1.1 *)构建以下基本SDL2应用程序。
- SDL测试专业版:**
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 *。
你知道吗?
2条答案
按热度按时间kmynzznz1#
我把答案贴在了评论上,但是如果将来有人遇到类似的问题,这里有解决办法。
错误“undefined reference”意味着有一个定义的原型,但是找不到定义。最常见的情况是,您没有链接到具有定义的库。
在作者的例子中,他链接到一个用于x86_64的库,但是他的目标应用程序是i686,所以链接器找不到目标的引用。链接到正确的库解决了他的问题。
mnemlml82#
如果使用CMake:
就这么简单。
More about target_link_libraries