window 下 golang 编译sqlite3
问题描述
日前想在window 下面用golang 访问sqlite3, 通过搜索发现下面的package 比较合适:
github.com/mattn/go-sqlite3
使用go get 下载之后,在cygwin 下面编译,发现无法编译,会报如下的错误:
$ go build testc
testc
windows_amd64\link.exe: running gcc failed: exit status 1
/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lmingwex
/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lmingw32
collect2: error: ld returned 1 exit status
问题解决
通过cygwin 的setup 安装程序, 选择安装MinGW-64 gcc, 之后设置cgo 编译器。
$ export CC=x86_64-w64-mingw32-gcc
之后编译既可以解决这个问题
$ go build testc
编译器名称 | 用途 |
---|---|
x86_64-w64-mingw32-gcc | 编译64 bit window 程序 |
i686-w64-mingw32-gcc | 编译32 bit window 程序 |
x86_64-pc-cygwin | cygwin 下的gcc |
cygin 和 MinGW 的区别就不在这里累述了!
这个问题应该可以直接下周MinGW 的环境编译解决,只是笔者对于cygwin 工作环境依赖很大,所以就在这个环境下面解决这个问题了。