首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Cygwin64上编译cgo:"ld: cannot -lmingw32“

在Cygwin64上编译cgo:"ld: cannot -lmingw32“
EN

Stack Overflow用户
提问于 2016-05-28 09:28:18
回答 3查看 10.4K关注 0票数 19

我试图在Windows上使用cgo库,即github.com/mattn/go-sqlite3

我使用Cygwin64,并安装了所有的“开发”软件包,所以gcc是可用的。

但是运行go get github.com/mattn/go-sqlite3会导致:

代码语言:javascript
复制
/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上使用库?

请注意,自述文件指出

但是,如果您安装go-sqlite3 3和go install github.com/mattn/go-sqlite3 3,则不再需要gcc来构建应用程序。

但是如果我使用go install,我会得到同样的错误消息。

代码语言:javascript
复制
$ go version
go version go1.6.2 windows/amd64
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-28 16:51:58

最终对我(而不是Cygwin)起作用的是从http://tdm-gcc.tdragon.net/download下载TDM MinGW-w64并设置路径,以便使用来自C:\TDM-GCC-64\bin的gcc。

票数 12
EN

Stack Overflow用户

发布于 2017-04-25 15:57:33

您还可以从Cygwin安装包mingw64-i686-gcc-core

二进制文件将是/usr/bin/i686-w64-mingw32-gcc.exe,因此您可能需要将其复制为/usr/bin/gcc.exe

票数 3
EN

Stack Overflow用户

发布于 2016-12-14 22:00:26

我也遇到过同样的问题。在我看来,cygwin与cgo并不完全兼容。相反,我使用了https://mingw-w64.org

来自cgo文档https://github.com/golang/go/wiki/cgo

为了在Windows上使用cgo,您还需要首先安装gcc编译器(例如,mingw-w64)和gcc.exe (等等)。在使用cgo编译之前,在PATH环境变量中可以工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37497354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档