我正在尝试在Windows上使用cgo库,即github.com/mattn/go-sqlite3
我使用Cygwin64并安装了所有“开发”软件包,因此可以使用gcc。
但是运行go get github.com/mattn/go-sqlite3
会导致:
/usr/lib/gcc/x86_64-pc-cygwin/5.3.0/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lmingwex
/usr/lib/gcc/x86_64-pc-cygwin/5.3.0/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lmingw32
如果我在Cygwin安装程序中搜索“mingwex”和“mingw32”,我没有得到任何结果。我在寻找错误的名称,还是在64位系统上没有?
或者有更好的方法在Windows上使用该库吗?
请注意,README声明了
但是,如果你使用go install安装go-sqlite3 github.com/mattn/go-sqlite3,你不需要gcc来构建你的应用程序 再
但如果我使用go install
,我会收到相同的错误消息。
$ go version
go version go1.6.2 windows/amd64
答案 0 :(得分:8)
最终为我(而不是Cygwin)工作的是从http://tdm-gcc.tdragon.net/download下载TDM MinGW-w64并设置PATH以便使用来自C:\TDM-GCC-64\bin
的gcc。
答案 1 :(得分:2)
您也可以从Cygwin安装包mingw64-i686-gcc-core
。
二进制文件为/usr/bin/i686-w64-mingw32-gcc.exe
,因此您可能需要将其复制为/usr/bin/gcc.exe
。
答案 2 :(得分:1)
我也遇到过同样的问题。在我看来,cygwin与cgo不完全兼容。相反,我使用了https://mingw-w64.org。
来自cgo文档https://github.com/golang/go/wiki/cgo:
为了在Windows上使用cgo,您还需要首先安装gcc编译器(例如,mingw-w64)并在使用cgo编译之前在PATH环境变量中安装gcc.exe(等)会工作的。