golang交叉编译上遇到的问题!

deyen · · 4853 次点击
反而我输入`sudo CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go`之后,出现了下面的提示: ``` go: downloading golang.org/x/sys v0.0.0-20220412211240-33da011f77ad go: downloading github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 go: downloading github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564 go: downloading fyne.io/systray v1.10.1-0.20220621085403-9a2652634e93 go: downloading github.com/go-gl/glfw/v3.3/glfw v0.0.0-20211213063430-748e38ca8aec go: downloading github.com/goki/freetype v0.0.0-20181231101311-fa8a33aabaff go: downloading golang.org/x/image v0.0.0-20220601225756-64ec528b34cd ``` 然后一直不动了。。。。。 过了一个小时吧,就提示了一堆错误,里面有写着“time out"等字样。(有错误的那个提示页面被我不小心关掉了,所以没采集到错误放上来,又要等很久才能出那个错误) 您看看~
#4
更多评论
首先,amd64 linux 编译到 amd64 windows 的程序,命令应该是: ``` CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go ``` 其次,fyne.io/fyne 这个库应该用了 CGO,需要安装响应的 gcc,指定 gcc 才能编译,例如: ``` CGO_ENABLED=1 GOOS=windows GOARCH=amd64 CC=x86_64-xxx-gcc CGO_LDFLAGS="-static" go build main.go ```
#1
按照你的提示去做,出现以下代码。 ``` $ CGO_ENABLED=1 GOOS=windows GOARCH=amd64 CC=x86_64-xxx-gcc CGO_LDFLAGS="-static" go build main.go # runtime/cgo cgo: C compiler "x86_64-xxx-gcc" not found: exec: "x86_64-xxx-gcc": executable file not found in $PATH ``` (怎么我看网上有说法说cgo不支持交叉编译,所以CGO_ENABLED=0来着😂😂)
#2