在 Cygwin64 上编译 cgo 库:"ld: cannot find -lmingw32"
Compile cgo lib on Cygwin64: "ld: cannot find -lmingw32"
我正在尝试在 Windows 上使用 cgo 库,即 github.com/mattn/go-sqlite3
我使用 Cygwin64 并安装了所有 "Development" 软件包,因此可以使用 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 指出
However, if you install go-sqlite3 with go install
github.com/mattn/go-sqlite3, you don't need gcc to build your app
anymore
但如果我使用 go install
.
,我会收到相同的错误消息
$ go version
go version go1.6.2 windows/amd64
最终对我有用的(而不是 Cygwin)是从 http://tdm-gcc.tdragon.net/download 下载 TDM MinGW-w64 并设置 PATH 以便使用 C:\TDM-GCC-64\bin
的 gcc。
我也遇到了同样的问题。在我看来,cygwin 与 cgo 并不完全兼容。相反,我使用了 https://mingw-w64.org.
来自 cgo 文档 https://github.com/golang/go/wiki/cgo:
In order to use cgo on Windows, you'll also need to first install a gcc compiler (for instance, mingw-w64) and have gcc.exe (etc.) in your PATH environment variable before compiling with cgo will work.
您还可以从 Cygwin 安装软件包 mingw64-i686-gcc-core
。
二进制文件将为 /usr/bin/i686-w64-mingw32-gcc.exe
,因此您可能需要将其复制为 /usr/bin/gcc.exe
。
我正在尝试在 Windows 上使用 cgo 库,即 github.com/mattn/go-sqlite3
我使用 Cygwin64 并安装了所有 "Development" 软件包,因此可以使用 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 指出
However, if you install go-sqlite3 with go install github.com/mattn/go-sqlite3, you don't need gcc to build your app anymore
但如果我使用 go install
.
$ go version
go version go1.6.2 windows/amd64
最终对我有用的(而不是 Cygwin)是从 http://tdm-gcc.tdragon.net/download 下载 TDM MinGW-w64 并设置 PATH 以便使用 C:\TDM-GCC-64\bin
的 gcc。
我也遇到了同样的问题。在我看来,cygwin 与 cgo 并不完全兼容。相反,我使用了 https://mingw-w64.org.
来自 cgo 文档 https://github.com/golang/go/wiki/cgo:
In order to use cgo on Windows, you'll also need to first install a gcc compiler (for instance, mingw-w64) and have gcc.exe (etc.) in your PATH environment variable before compiling with cgo will work.
您还可以从 Cygwin 安装软件包 mingw64-i686-gcc-core
。
二进制文件将为 /usr/bin/i686-w64-mingw32-gcc.exe
,因此您可能需要将其复制为 /usr/bin/gcc.exe
。