C++ 如何在Qt Creator下链接到SDL2库

C++ 如何在Qt Creator下链接到SDL2库,c++,qt,sdl,static-linking,sdl-2,C++,Qt,Sdl,Static Linking,Sdl 2,我编译了最新的SDL2库,从“官方”mercurial存储库获得,并遵循Ubuntu/Linux构建的说明 但是QtCreator无法链接静态构建的库。下面是qmake脚本: TEMPLATE = app CONFIG += console CONFIG -= app_bundle CONFIG -= qt unix:!macx: LIBS += -L/usr/local/lib/libSDL2.a INCLUDEPATH += /usr/local/include SOURCES += ma

我编译了最新的SDL2库,从“官方”mercurial存储库获得,并遵循Ubuntu/Linux构建的说明

但是QtCreator无法链接静态构建的库。下面是qmake脚本:

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

unix:!macx: LIBS += -L/usr/local/lib/libSDL2.a
INCLUDEPATH += /usr/local/include
SOURCES += main.cpp

链接器报告了几个未定义的引用,包括
SDL\u Init

您必须将LIBS行更改为:

LIBS += -L/usr/local/lib -lSDL2
as
-L
允许您定义链接器查找要链接的库的路径,而
-L
定义要链接到的库。在Unix系统上,名为
ASD
的库由
libASD.so
文件表示(在本例中,
.so
用于共享库,在您的情况下,有
.a
作为静态库)

编辑: 我准备了非常简单的
main.cpp

#include <SDL/SDL.h>

int main()
{
  SDL_Init(SDL_INIT_VIDEO);
  return 0;
}

现在它的编译非常完美。

这个qmake脚本的语法正确吗?我的代码可以做哪些改进?我们已经发现这并不能解决问题。。。查看我的已删除答案的注释以获取提示,但我没有看到已删除的答案,但我尝试进一步调查,因此请查看我编辑的答案。goob job,我没有时间自己尝试:)
TEMPLATE = app
CONFIG += console
CONFIG -= qt
CONFIG -= app_bundle
SOURCES += main.cpp
LIBS += -L/usr/local/lib -lSDL2 -ldl -lpthread
INCLUDES += /usr/local/include