Windows上的golang cgo退出状态2 企图
我想在安装了Windows上的golang cgo退出状态2 企图,windows,go,cgo,exitstatus,Windows,Go,Cgo,Exitstatus,我想在安装了Go 1.8.1的windows8.1机器上编译以下代码段 package main /* int theAnswer() { return 42; } */ import "C" import "fmt" func main() { fmt.Println(C.theAnswer()) } 这是一张工作票 问题 在ideone中运行代码段时,代码段按预期工作,但在我自己的机器上编译失败: $ CC=gcc GOARCH=amd64 GOOS=windows
Go 1.8.1
的windows8.1
机器上编译以下代码段
package main
/*
int theAnswer() {
return 42;
}
*/
import "C"
import "fmt"
func main() {
fmt.Println(C.theAnswer())
}
这是一张工作票
问题
在ideone
中运行代码段时,代码段按预期工作,但在我自己的机器上编译失败:
$ CC=gcc GOARCH=amd64 GOOS=windows go build -x
WORK=C:\Users\****\AppData\Local\Temp\go-build775642990
mkdir -p $WORK\_\D_\dev\workspaces\go\src\github.com\nopmind\_obj\
mkdir -p $WORK\_\D_\dev\workspaces\go\src\github.com\nopmind\_obj\exe\
cd D:\dev\workspaces\go\src\github.com\nopmind
CGO_LDFLAGS="-g" "-O2" "C:\\Go\\pkg\\tool\\windows_amd64\\cgo.exe"
-objdir "C:\\Users\\****\\AppData\\Local\\Temp\\go-build775642990\\_\\D_\\dev\\workspaces\\go\\src\\github.com\\nopmind\\_obj\\"
-importpath _/D_/dev/workspaces/go/src/github.com/nopmind
-- -I "C:\\Users\\****\\AppData\\Local\\Temp\\go-build775642990\\_\\D_\\dev\\workspaces\\go\\src\\github.com\\nopmind\\_obj\\"
-g -O2 Test.go
go build _/D_/dev/workspaces/go/src/github.com/nopmind: C:\Go\pkg\tool\windows_amd64\cgo.exe: exit status 2
($go build-x
提供相同的输出)
在谷歌搜索了几个小时没有任何有用的结果后,我现在已经被这个问题困住了
环境
- 操作系统:Windows 8.1 x64
- 围棋:1.8.1
- MingW:通过以下方式安装
我个人的猜测是MingW安装有问题。如果是这样的话,我希望能简短地解释一下如何正确地为cgo设置MingW。您的代码可以在Windows 10、7和Linux上运行。例如,在Windows 10上,使用For MinGW
Microsoft Windows [Version 10.0.15063]
>go version
go version devel +dc0f0ab Thu Apr 13 18:20:38 2017 +0000 windows/amd64
>gcc --version
gcc (tdm64-1) 5.1.0
>type answer.go
package main
/*
int theAnswer() {
return 42;
}
*/
import "C"
import "fmt"
func main() {
fmt.Println(C.theAnswer())
}
>go run answer.go
42
>
我从未使用过。好的,我现在尝试使用
TDM-GCC
(完全忘记了那个),它可以工作了!似乎不支持Win Build
软件包。非常感谢。