【发布时间】:2017-09-09 19:45:18
【问题描述】:
尝试
我想在安装了Go 1.8.1 的Windows 8.1 机器上编译以下sn-p。
package main
/*
int theAnswer() {
return 42;
}
*/
import "C"
import "fmt"
func main() {
fmt.Println(C.theAnswer())
}
这是一个有效的Ideone Snippet。
问题
虽然在ideone 中运行 sn-p 按预期工作,但在我自己的机器上编译却以某种方式失败:
$ 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 给出相同的输出)
在谷歌搜索了几个小时没有任何有用的结果之后,我现在很难坚持。
环境
问题
有人知道为什么会这样吗?
我个人的猜测是 MingW 安装有问题。如果是这样,我将不胜感激如何为 cgo 正确设置 MingW。
【问题讨论】:
标签: windows go cgo exitstatus