我尝试使用CGO_ENABLED=1
在Windows上构建Go代码。我有一个带
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
答案 0 :(得分:0)
您似乎需要一个交叉编译器和开发环境来编译Linux的C程序。搜索后,这篇文章可能会有所帮助:https://stackoverflow.com/a/4770417/3196456。
或者,当您使用Windows 10时,更简单的方法是尝试Windows Subsystem for Linux,这可以为您提供Windows上的整个Linux开发体验。如果Windows版本大于16215,则可以通过Microsoft Store直接安装,例如Ubuntu。