win8.1下golang+sdl2.0环境搭建

时间:2023-03-09 01:22:28
win8.1下golang+sdl2.0环境搭建
  • sdl2.0的golang绑定我是使用的这个,但是它的官方介绍里面只有linux以及OSX系统的说明,没有windows的,在我的mbp上弄好以后就考虑在win下也搭建一个开发环境,这样就能比较方便的跨平台了。
  • 具体步骤如下:
  1. 配置go环境,可以参考官方文档或者这里
  2. go get上面提到的库,但是反复提示如下错误:

    cc1.exe: sorry, unimplemented: 64-bit mode not compiled in

    后来发现只要用到了cgo就会报这个错误,因为我下载的是go 1.3.2 64位版本,但是本地的gcc是32位的。折腾了好久没解决,一直没能下载到64位的mingw,官方下载器每次都是下载一半的时候报错,即使挂上代理也一样,后来在sf.net上找到一位好心人做的离线下载包,然后将gcc加入path环境变量,才算能使用cgo了。

  3. 到此再build go-sdl的话,会提示找不到SDL2/SDL.h文件,这个问题就更加折腾了,
    google了好久就没人给出具体解决方案,就没提cgo编译的时候,对应的c文件需要放在什么目录下面。也许太简单不屑于提起吧,可是对于新手来说却是比较麻烦的事情。有人说自己看源码都能解决,确实是这个道理,但是请搞清楚首要目的:要学习使用golang来开发sdl程序。
  4. 开始我是尝试将sdl的头文件放到github.com/veandco/go-sdl2/sdl目录下,
    因为该目录下本来就有一些c文件,因此考虑cgo会搜索当前目录,结果失败了,它只能搜索当前目录,一旦放到子目录就不行。接下来尝试使用绝对路径,仍然失败,不清楚为嘛。再下来想到cgo是通过gcc来编译c代码,因此将sdl官方下载的binary包(mingw版本)解压放入gcc目录(sdl官方的mingw包中应该包含了bin,include,lib,share这几个目录,直接将它们放到gcc根目录下,与同名目录覆盖即可)
    然后go build,一切ok

至此,整个环境应该搞定了,let' go