动态编译golang时出错

动态编译golang时出错,go,compiler-errors,dynamic-compilation,Go,Compiler Errors,Dynamic Compilation,我正在尝试在linux主机上为windows动态编译go文件我的代码: package main import "fmt" func main() { fmt.Println("Hello, 世界") } 当我试图编译时: root@vm:/home/ubuntu/workspace# echo $GOROOT /opt/go root@vm:/home/ubuntu/workspace# echo $GOPATH /home/ubuntu/workspace/ root@vm:/ho

我正在尝试在linux主机上为windows动态编译go文件我的代码:

package main
import "fmt"
func main() {
    fmt.Println("Hello, 世界")
}
当我试图编译时:

root@vm:/home/ubuntu/workspace# echo $GOROOT
/opt/go
root@vm:/home/ubuntu/workspace# echo $GOPATH
/home/ubuntu/workspace/
root@vm:/home/ubuntu/workspace# go build // works !
root@vm:/home/ubuntu/workspace# go build -compiler gccgo // works !
root@vm:/home/ubuntu/workspace# ls -sh workspace 
28K workspace
root@vm:/home/ubuntu/workspace# GOOS=windows GOARCH=386 go build // works !
root@vm:/home/ubuntu/workspace# GOOS=windows GOARCH=386 go build -compiler gccgo
# _/home/ubuntu/workspace
./main.go:2:11: error: import file ‘fmt’ not found
 import "fmt"
           ^
./main.go:4:2: error: reference to undefined name ‘fmt’
  fmt.Println("Hello, 世界")
  ^
root@vm:/home/ubuntu/workspace# 
在windows中还存在以下错误:

C:\Users\vm\Documents\aatest>go build -compiler gccgo
go build _/C_/Users/vm/Documents/aatest: : exec: "C:\\Users\\vm\\Documents\\aatest": file does not exist

C:\Users\vm\Documents\aatest>go build main.go -compiler gccgo
named files must be .go files

任何平台的帮助都可以

与此相关吗?你有什么版本的gcc(如中)我意识到gccgo在Windows上还不受支持,所以我尝试了xgo不工作,我的gcc版本是4.8.4,这个版本似乎太旧了,无法支持交叉编译所需的最新go版本。那么,如果它编译得很好(没有使用-compiler),有什么问题吗如果没有编译器标志,从第一次编译开始,二进制文件应该仍然可以正常运行。您应该可以在Windows上运行该文件吗?@Datsik我可以成功编译到Windows,但无法动态编译到Windows与此相关吗?你有什么版本的gcc(如中)我意识到gccgo在Windows上还不受支持,所以我尝试了xgo不工作,我的gcc版本是4.8.4,这个版本似乎太旧了,无法支持交叉编译所需的最新go版本。那么,如果它编译得很好(没有使用-compiler),有什么问题吗如果没有编译器标志,从第一次编译开始,二进制文件应该仍然可以正常运行。您应该可以在Windows上运行该文件?@Datsik我可以成功编译到Windows,但无法动态编译到Windows