如何解决cgo 似乎断货 继续库存 cygwin - 是否支持?
运行任何简单的“Hello,world!”在(截至今天)股票 cygwin 上使用 cgo 会产生错误:
$ go version
go version go1.16.5 windows/amd64
$ go test -run TestCamera
# runtime/cgo
gcc_libinit_windows.c: In function ‘x_cgo_sys_thread_create’:
gcc_libinit_windows.c:58:12: error: implicit declaration of function ‘_beginthre
ad’ [-Werror=implicit-function-declaration]
58 | thandle = _beginthread(func,arg);
| ^~~~~~~~~~~~
cc1: all warnings being treated as errors
由于某种原因,cygwin 不支持 go 吗?或者,我该如何解决这个问题?
示例代码:几乎任何 cgo,例如 https://github.com/kyleconroy/hello-cgo/blob/master/hello.go
解决方法
如果我下载这些文件 [1],我可以按预期运行这些命令:
PS C:\hello-cgo> go mod init hello
PS C:\hello-cgo> go build
PS C:\hello-cgo> .\hello.exe
Hello CGO!
但是我应该说我不是使用 Cygwin,而是 MSYS2 [2]。具体来说,这些 包:
mingw-w64-x86_64-gcc
mingw-w64-x86_64-binutils
mingw-w64-x86_64-crt-git
mingw-w64-x86_64-gmp
mingw-w64-x86_64-headers-git
mingw-w64-x86_64-libwinpthread-git
mingw-w64-x86_64-windows-default-manifest
mingw-w64-x86_64-winpthreads-git
mingw-w64-x86_64-zlib
mingw-w64-x86_64-zstd
我认为如果你使用 Pacman,你可以只安装第一个,它会拉 其余部分(我使用我自己的 MSYS2 包管理器)。我知道这不完全是什么 你要求,但也许它会帮助你。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。