在MinGW中设置SDL

3

目前,我正在尝试使用MinGW设置SDL。我看到了一些网站提供的方法(或者说是同样的方法重新发布),但我不想采用“快速而肮脏”的设置方式。

我看到有一个sdl-conf文件,我已经安装了MSYS,并下载了最新的SDL 1.2 MinGW开发版本。

1个回答

13

教程在这里,它解释了需要做的一切:

  1. 首先需要下载SDL标头和二进制文件,你可以在SDL网站上找到它们,具体页面在这里。

向下滚动到“Development Libraries”部分,然后下载Mingw32开发库。

打开gz归档文件,里面应该有一个*.tar格式的存档文件。打开*.tar文件,里面应该有一个文件夹。打开这个文件夹,里面会包含许多子文件夹。

  1. 将lib子文件夹中的内容复制到MinGW lib文件夹中。MinGW lib文件夹应该位于C:\MinGWStudio\MinGW\lib。

  2. 此后,在存档文件的include子文件夹中打开名为“SDL”的文件夹,并将其提取到MinGW include文件夹中。MinGW include文件夹应该位于C:\MinGWStudio\MinGW\include。

注意:某些版本的SDL存档文件的include子文件夹中可能没有名为“SDL”的文件夹,而只有一堆头文件。为了解决这个问题,只需在MinGW include文件夹中创建一个名为“SDL”的文件夹,并将存档中的所有头文件复制到你创建的那个文件夹中即可。

  1. 现在从存档文件中取出SDL.dll文件(它应该在bin子文件夹中),然后提取它。当你编译exe文件时,你将把这个文件放在与exe文件相同的目录中。

或者,你可以将SDL.dll复制到C:\WINDOWS\SYSTEM32中,这样即使SDL.dll不在同一目录下,你的SDL应用程序也能找到它。如果你使用的是64位Windows版本,你需要将dll文件放在C:\Windows\SysWOW64中。

这种方法的问题是,如果你有多个使用不同SDL版本的应用程序,就会出现版本冲突。例如,如果你在SYSTEM32中安装了SDL 1.2.8,而应用程序使用1.2.13,则会遇到问题。通常你想要在开发时将SDL.dll与可执行文件放在同一个目录中,并且在分发应用程序时始终需要将SDL.dll放在exe文件所在的同一个目录中。

  1. 现在启动MinGW Developer Studio并开始一个新的空项目。

  2. 进入项目设置。

  3. 在链接选项卡下,在库字段中粘贴:mingw32、SDLmain、SDL。

  4. 添加一个新的源文件到该项目,并将以下代码粘贴到新的源文件中:

//

#include "SDL/SDL.h"
int main( int argc, char* args[] ) {
  SDL_Init( SDL_INIT_EVERYTHING ); //Start SDL
  SDL_Quit(); //Quit SDL
  return 0;
}
  1. 现在进行编译。如果需要,保存新的源文件,并确保SDL.dll与可执行文件在同一目录中。如果没有错误,您就完成了。否则,请返回并确保您没有跳过任何步骤。

哥们,太感谢了。:D 我不知道我怎么会错过那个。如果我有更多问题,我会再发帖的。 - johnki
好的,一切似乎都正常工作了。再次感谢。 :D - johnki
或者如果您不知道如何接受答案,您应该阅读FAQ(http://stackoverflow.com/faq)。 - v01d
1
啊,我之前不知道。好的。 :) - johnki
1
你不应该修改你的MinGW安装,尤其是C:\Windows目录。将库文件放在其他地方,然后配置编译器去那里寻找它们。 - HolyBlackCat
存档网址已经失效。您可以在这里下载发布版本。 - trxgnyp1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接