C++ 如何在Qt Creator下链接到SDL2库
我编译了最新的SDL2库,从“官方”mercurial存储库获得,并遵循Ubuntu/Linux构建的说明 但是QtCreator无法链接静态构建的库。下面是qmake脚本: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
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