我正在努力使用SDL2和Qt Creator,并在SO上发现了一些主要有用的线程,但在Windows 10上没有任何内容可以将它们整合在一起用于SDL2和Qt Creator . 主要问题是我无法使用控制台进行I / O与SDL2同时并遵循其他建议,出现了许多不同的问题 .
有两个键:
-
使用哪个SDL2.dll文件以及放置它的目录 .
有人说使用从SDL网站下载的SDL2.dll文件 . 其他人说把这个文件放在主项目目录中,这对我来说不起作用 . 对我有用的是首先构建我的项目(失败),但创建了一个"build-..."目录 . 然后,从installDir \ SDL2-2.0.5 \ i686-w64-mingw32 \ bin获取SDL2.dll文件并将其放在"build-..."目录中 . -
在project.pro文件中,手动添加:
INCLUDEPATH = installDir / SDL2-2.0.5 / i686-w64-mingw32 / include
LIBS = -L installDir / SDL2-2.0.5 / i686-w64-mingw32 / lib -lmingw32 -mwindows -mconsole -lSDL2main -lSDL2
CXXFLAGS = -std = c 11
说实话,我不知道是否需要LIBS中的所有呼叫,但它现在对我来说非常合适,我想我会分享一些知识 .
1 回答
Where to put the DLL
dll必须位于符合以下规则之一的目录中:
是$ PATH $环境变量的一部分
与可执行文件位于同一目录中
位于代码中有效指定并加载"manually"的目录中 .
在我的情况下,我只是将这些DLL移动到我的/ bin文件夹 .
Libs and includes
编译器需要包含,为此,以下两种可能性匹配:
复制SDL包含在编译器中的include目录 .
使用
INCLUDEPATH
添加项目的包含路径,如@launchpadmcquack所述 .链接器需要Libs,为此,以下两种可能性匹配:
复制编译器lib目录中的SDL库 .
如问题中所述,使用
LIBS
将lib添加到项目中 .考虑到库列表,需要
SDL2
,其他依赖于您的特定项目 . 例如 . 在我的情况下,我没有链接任何mingw32,mwindows或mconsole .附加说明:您可以使用
CONFIG
参数指定C 11: