2014-04-11 96 views
-4

我是C++游戏开发的初学者。我试图在代码块上设置sdl库;我跟踪了我在Google上找到的每个教程,但无法使其工作。我还包括SDL2_image-2.0.0和SDL2_mixer-2.0.0,但它不起作用。错误是:sdl设置窗口的proplem

#include <winapifamily.h> ||=== Build: Debug in tut (compiler: GNU GCC Compiler) ===| 
C:\mingw_dev_lib\SDL2-2.0.3\x86_64-w64-mingw32\include\SDL2\SDL_platform.h|121|fatal error: winapifamily.h: No such file or directory| 
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===| 
include <winapifamily.h> 

我的代码有什么问题?

+0

尝试删除包含 jpw

+0

将出现其他错误 –

+0

如果您想要更好的建议,请发布代码。没有看到任何代码,很难说出什么可能是问题。 – jpw

回答

4

我其实只是在一两天前在Code :: Blocks上设置SDL2。因为我怀疑你的环境可能未正确配置,这里是我做到了,本教程here大致如下:

  1. 同时下载一个运行时二进制和the SDL2 download page开发库。确保运行时二进制文件适用于您的应用程序 - 换句话说,如果您正在构建32位可执行文件,请获取32位SDL,并且如果您要构建64位二进制文​​件,请获取64位SDL。
  2. 将开发库解压缩到您选择的文件夹中,并对运行时二进制文件执行相同操作。记住你用于这些的路径。我的SDL运行时二进制文件使用了“D:\ Programming \ C++ \ SDL \ SDL2.dll”,我的开发库使用了“D:\ Programming \ C++ \ SDL \ SDL2-2.0.3”。
  3. 在Code :: Blocks中打开您的项目。
  4. 转到设置菜单,然后单击“编译器...”
  5. 切换到“搜索目录”选项卡,然后选择“编译器”子选项卡。
  6. 单击“添加”并浏览到开发库的文件夹。您需要选择是否在此开发32位应用程序或64位应用程序:如果要使用32位,则需要添加“\ i686-w64-mingw32 \ include”( “D:\ Programming \ C++ \ SDL \ SDL2-2.0.3 \ i686-w64-mingw32 \ include”),而对于64位应用程序,您需要添加“\ x86_64-w64-mingw32 \ include”(“D :\编程\ C++ \ SDL \ SDL2-2.0.3 \ x86_64的-W64-的mingw32 \包括“)。
  7. 转到“编译器”选项卡旁边的“链接器”选项卡。
  8. 单击“添加”并浏览到您的开发库文件夹。再次,根据您是要使用32位应用程序还是使用64位应用程序,添加“\ i686-w64-mingw32 \ lib”(“D:\ Programming \ C++ \ SDL \ SDL2-2.0.3 \\ 686-w64-mingw32 \ lib“)或”\ x86_64-w64-mingw32 \ lib“(”D:\ Programming \ C++ \ SDL \ SDL2-2.0.3 \ x86_64-w64-mingw32 \ lib“)。
  9. 取SDL运行时二进制文件(“D:\ Programming \ C++ \ SDL \ SDL2.dll”)并复制&将其粘贴到编译后的EXE文件夹中。由于您使用的是Code :: Blocks,这通常是%PROJECT_FOLDER%\ Bin \%RELEASEMODE%,其中%PROJECT_FOLDER%是项目的路径,%RELEASEMODE%是Debug或Release。
  10. 建立您的项目并验证它是否有效。

如果需要,您也可以在每个项目的基础上进行设置,而不是全局设置。只需进入项目菜单,然后点击“Build options ...”,而不是步骤4中的设置菜单。

如果SDL在此之后仍然无法工作,我建议获取更新的MinGW并确保代码::块已正确设置使用它。