尝试在Windows 10上为Linux构建Go代码时遇到错误

时间:2018-03-04 20:30:10

标签: linux windows go cgo

我尝试使用CGO_ENABLED=1在Windows上构建Go代码。我有一个带

的.bat文件
set GOOS=linux
set GOARCH=amd64
set CGO_CFLAGS=-g -O2 -w
set CGO_ENABLED=1
go build main.go constants.go functions.go

但我得到错误:

gcc_linux_amd64.c: In function '_cgo_sys_thread_start':
gcc_linux_amd64.c:62:2: error: unknown type name 'sigset_t'
  sigset_t ign, oset;
  ^

我该怎么办?我无法在任何地方找到这样的错误。

P.S。如果我没有得到" -w"旗帜在" CGO_CFLAGS"我会得到这个:

# runtime/cgo
_cgo_export.c:1:0: error: -fPIC ignored for target (all code is position 
independent) [-Werror]
 /* Created by cgo - DO NOT EDIT. */
 ^
cc1.exe: all warnings being treated as errors

1 个答案:

答案 0 :(得分:0)

您似乎需要一个交叉编译器和开发环境来编译Linux的C程序。搜索后,这篇文章可能会有所帮助:https://stackoverflow.com/a/4770417/3196456

或者,当您使用Windows 10时,更简单的方法是尝试Windows Subsystem for Linux,这可以为您提供Windows上的整个Linux开发体验。如果Windows版本大于16215,则可以通过Microsoft Store直接安装,例如Ubuntu