Как скомпилировать Go код на Windows под Linux?

Я пытаюсь собрать проект на Windows 10 под Linux с CGO_ENABLED=1 У меня есть .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
  • Вопрос задан
  • 1882 просмотра
Пригласить эксперта
Ответы на вопрос 1
@chromimon
CGO_ENABLED=1

Даже непосредственно на Windows сие было бы не просто.
Нужен компилятор С, поддерживающий целевую платформу.

Столкнувшись с подобной проблемой я был лишний раз подумал - а не тянул ли я внутри своей программы что то лишнее, что требует кроме компилятора Go еще и компилятор С.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы