這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
- sdl2.0的golang綁定我是使用的這個,但是它的官方介紹裡面只有linux以及OSX系統的說明,沒有windows的,在我的mbp上弄好以後就考慮在win下也搭建一個開發環境,這樣就能比較方便的跨平台了。
- 具體步驟如下:
- 配置go環境,可以參考官方文檔或者這裡。
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了。
- 到此再build go-sdl的話,會提示找不到SDL2/SDL.h檔案,這個問題就更加折騰了,
google了好久就沒人給出具體解決方案,就沒提cgo編譯的時候,對應的c檔案需要放在什麼目錄下面。也許太簡單不屑於提起吧,可是對於新手來說卻是比較麻煩的事情。有人說自己看源碼都能解決,確實是這個道理,但是請搞清楚首要目的:要學習使用golang來開發sdl程式。
開始我是嘗試將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