c++ - 在 QtCreator 中链接 SDL2

标签 c++ macos qt sdl qmake

所以我想使用 Qt 作为我的 SDL 应用程序的编辑器。当我尝试在 Qt 中创建一个空白项目并链接库时,它就是找不到 SDL2/SDL.h。这是我的 .pro 文件中的内容:

mac: LIBS += "-F$$PWD/../Control Libraries/" -framework SDL2
INCLUDEPATH += "$$PWD/../Control Libraries/SDL2.framework/Versions/A/Headers"


mac: LIBS += "-F$$PWD/../Control Libraries/" -framework SDL2_mixer
INCLUDEPATH += "$$PWD/../Control Libraries/SDL2_mixer.framework/Versions/A/Headers"


mac: LIBS += "-F$$PWD/../Control Libraries/" -framework SDL2_ttf
INCLUDEPATH += "$$PWD/../Control Libraries/SDL2_ttf.framework/Versions/A/Headers"

我找不到任何人发布如何让它工作,但我知道必须有一些方法。它只需单击一下即可在 Xcode 中运行,所以我只是做错了什么吗?谢谢。

编辑:

错误信息如下:

    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -g -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.6 -Wall -W -fPIE -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../../Qt/5.3/clang_64/mkspecs/macx-clang -I../SpudEngineEditor -I../Control\ Libraries/SDL2.framework/Headers -I../Control\ Libraries/SDL2_mixer.framework/Headers -I../Control\ Libraries/SDL2_ttf.framework/Headers -I../../../Qt/5.3/clang_64/lib/QtWidgets.framework/Versions/5/Headers -I../../../Qt/5.3/clang_64/lib/QtGui.framework/Versions/5/Headers -I../../../Qt/5.3/clang_64/lib/QtCore.framework/Versions/5/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/AGL.framework/Headers -I. -I. -F/Users/Logan/Qt/5.3/clang_64/lib -o Camera.o ../SpudEngineEditor/Camera.cpp
In file included from ../SpudEngineEditor/Camera.cpp:9:
In file included from ../SpudEngineEditor/Camera.h:13:
../SpudEngineEditor/CoreEngine.h:14:9: warning: unknown pragma ignored [-Wunknown-pragmas]
#pragma comment (lib, "glu32.lib")
        ^
In file included from ../SpudEngineEditor/Camera.cpp:9:
In file included from ../SpudEngineEditor/Camera.h:13:
In file included from ../SpudEngineEditor/CoreEngine.h:34:
../Control Libraries/SDL2_ttf.framework/Headers/SDL_ttf.h:30:10: fatal error: 'SDL2/SDL.h' file not found
#include <SDL2/SDL.h>

编辑:我已经得到它所以我可以包括,但不是,这是一个问题,因为 SDL 混合器和 SDL rtf 都使用

最佳答案

当路径中有空格时,您应该使用双引号,例如:

INCLUDEPATH += "$$PWD/../Control Libraries/SDL2.framework/Versions/A/Headers"

除非你确实希望它们是单独的参数,例如:

mac: LIBS += "-F$$PWD/../Control Libraries/" -framework SDL2_mixer

问题编辑后:所以你有 #include <SDL2/SDl.h> .好像大小写错了,应该是

#include <SDL2/SDL.h>

关于c++ - 在 QtCreator 中链接 SDL2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24852586/

相关文章:

c# - 实现一个线程池,它可以在 C++ 中调用具有多个参数的函数

c++ - `operator new` 是 C++ 核心语言的一部分吗?

java - 当 ClassLoader 加载 libawt_lwawt.dylib 时 Swing 应用程序挂起

linux - 如何处理lua中的这种内存泄漏?

qt - 每次从 qml 页面收到触摸事件时如何重置计时器

c++ - MAgic Square 函数 C++

objective-c - 如何使用 Cocos2D 在 OS X 中将帧速率限制为 30fps

Qt4 QMenu 项排序

c++ - qt c++ 中的 Qsqlite 重复连接警告

c++ - 在值 C++ 中搜索设置/取消设置位组合