尝试在 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。
我尝试用 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。