windows 未定义使用Qt Creator对SDL_Init的引用

wqlqzqxt  于 2023-01-18  发布在  Windows
关注(0)|答案(2)|浏览(193)

我正在尝试使用 * 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 *。
你知道吗?

kmynzznz

kmynzznz1#

我把答案贴在了评论上,但是如果将来有人遇到类似的问题,这里有解决办法。
错误“undefined reference”意味着有一个定义的原型,但是找不到定义。最常见的情况是,您没有链接到具有定义的库。
在作者的例子中,他链接到一个用于x86_64的库,但是他的目标应用程序是i686,所以链接器找不到目标的引用。链接到正确的库解决了他的问题。

mnemlml8

mnemlml82#

如果使用CMake:

target_link_libraries(__YOUR_APPNAME__ PRIVATE SDL2)

就这么简单。
More about target_link_libraries

相关问题