Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows上的golang cgo退出状态2 企图_Windows_Go_Cgo_Exitstatus - Fatal编程技术网

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
软件包。非常感谢。