在win下用Go語言的cgo時(好比下面場景)咱們會用到的GCC編譯器,Win下咱們通常用MinGW。html
Golang鏈接Oracle數據庫;win下 golang 跨平臺編譯git
MinGW全稱Minimalist GNU For Windows,是個精簡的Windows平臺C/C++、ADA及Fortran編譯器,相比Cygwin而言,體積要小不少,使用較爲方便。MinGW提供了一套完整的開源編譯工具集,以適合Windows平臺應用開發,且不依賴任何第三方C運行時庫。github
MinGW包括:
一套集成編譯器,包括C、C++、ADA語言和Fortran語言編譯器
用於生成Windows二進制文件的GNU工具的(編譯器、連接器和檔案管理器)
用於Windows平臺安裝和部署MinGW和MSYS的命令行安裝器(mingw-get)
用於命令行安裝器的GUI打包器(mingw-get-inst)golang
MingW 分 32位和64位版本:下載地址分別以下:數據庫
http://sourceforge.net/projects/mingw/ 工具
http://sourceforge.net/projects/mingw-w64/ui
好比我在使用 go-oci8 時就碰到過下面錯誤:.net
# github.com/wendal/go-oci8
cc1.exe: sorry, unimplemented: 64-bit mode not compiled in命令行
注意,簡單起見咱們要下載的是編譯好的版本,而不是 mingw-w64-v3.1.0.tar.bz2 (7.0 MB)線程
我下載的是:
目前主要有三種不一樣的線程庫的定義,分別是Win32,OS/2,以及POSIX,前兩種定義只適合於他們各自的平臺,而POSIX 定義的線程庫是適用於全部的計算平臺的。我這裏選的是threads-posix。
http://zh.wikipedia.org/wiki/POSIX%E7%BA%BF%E7%A8%8B
C++ Exceptions有DWARF、SJLJ、SEH三種處理方式。對應的咱們這裏選擇的是seh方式。
這裏的最新那個版本:
下載完成後,解壓縮到響應目錄,好比我這裏是解壓縮到 C:\MinGW\mingw64 目錄下, 我還須要在 path 環境變量中增長 C:\MinGW\mingw64\bin 確保能夠找到gcc。