Go / Golang Cross-Compile de Mac a Windows: error grave: no se encontró el archivo 'windows.h'

Resumen: cuando intento realizar una compilación cruzada de un archivo fuente .go que incluye un archivo C en algún lugar de la cadena de archivos, dirigido a Windows AMD64 desde un host Mac, obtengo:

/usr/local/go/src/runtime/cgo/gcc_windows_amd64.c:8:10: fatal error: 'windows.h' file not found

El código Purely Go parece una compilación cruzada sin error; ¿Hay alguna manera de obtener los archivos de encabezado adecuados para la compilación cruzada cuando los archivos C están involucrados?

Más detalles: Instalé LiteIDE en mi Mac para trabajar en algunos proyectos .go, y LiteIDE hace que sea relativamente sencillo apuntar a otras plataformas como objetivos de compilación. Lo probé en un pequeño proyecto de prueba que tenía, puramente Go, y parecía ejecutarse sin error.

Más tarde lo probé en un proyecto actual y más grande y tuve que ajustar varias configuraciones de env en el IDE para que funcione (quejas sobre archivos C sin CGO habilitado, y GOPATH no se configuró correctamente a pesar de que está configurado en .bash_profile y verificado en eco $ VARIABLE bien.) El resultado es

/usr/local/go/src/runtime/cgo/gcc_windows_amd64.c:8:10: fatal error: 'windows.h' file not found

Intentar apuntar a Linux (os linux, arch amd64) da

# runtime/cgo
ld: unknown option: --build-id=none
clang: error: linker command failed with exit code 1 (use -v to see invocation)

He verificado dos veces que tengo instalado XCode; gcc está instalado:

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr with-gxx-include-     dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/c++/4.2.1
Apple LLVM version 7.3.0 (clang-703.0.29)
Target: x86_64-apple-darwin15.4.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

... y Go es la última versión:

go version go1.6.2 darwin/amd64

También verifiqué que esto no es solo de LiteIDE (ya que LiteIDE parece anular la configuración de env e ignorar lo que hay en el terminal); Un ejemplo de intento en la consola da:

MyUsername$ env GOOS=windows GOARCH=amd64 CGO_ENABLED=1 go build -v
golang.org/x/net/html/atom
runtime/cgo
golang.org/x/crypto/ssh/terminal
golang.org/x/net/html
github.com/howeyc/gopass
# runtime/cgo
/usr/local/go/src/runtime/cgo/gcc_windows_amd64.c:8:10: fatal error: 'windows.h' file not found
github.com/andybalholm/cascadia
github.com/PuerkitoBio/goquery

Sospecho que esto se debe a que la aplicación usa bibliotecas de red en Go y creo que las bibliotecas nativas todavía están llamando a algunos archivos C para llenar los vacíos. ¿Hay alguna manera de obtener las bibliotecas adecuadas para construir en Linux / Windows o esto debe hacerse en las plataformas de destino para que funcione?

La creación de aplicaciones nativas en la plataforma host parece funcionar sin problemas.

Respuestas a la pregunta(1)

Su respuesta a la pregunta