在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。