尝试在 Windows 10 上为 Linux 构建 Go 代码时出错

Get error when try to build Go code for Linux on Windows 10

我尝试用 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。如果我在 "CGO_CFLAGS" 中没有“-w”标志,我会得到这个:

# 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

Linux好像需要交叉编译器和编译C程序的开发环境。四处搜索后,这个 post 可能会有所帮助: .

或者,当您使用 Windows 10 时,更简单的方法是尝试 Windows Subsystem for Linux, which can give you a whole Linux development experience on Windows. If your Windows build is greater than 16215, you can directly install one through Microsoft Store, for example, Ubuntu