go lang交叉编译,在linux下编译windows上可用的exe可执行文件
最近在看golang,看了《GO语言编程》,没看一段都会照葫芦画瓢搞个demo来玩玩。
在搞交叉编辑的时候,遇到了麻烦,按书上搞的,buildpkg 这个脚本里,需要在$GOROOT/src下执行go tool dist install -v pkg/runtime ,可是src下根本没有这个 pkg/runtime的目录啊,总是报错,怎么也编译不出来。
自己就不管那个脚本了,自己看错误提示琢磨。
自己直接 go build exe文件的时候,报错 go build runtime: windows/386 must be bootstrapped using make.bash
然后估摸着,需要先修改GOOS和GOARCH进行make.bash,试了下,果真可以。
所以,交叉编译,做一个windows下64位电脑可用的exe文件,这样搞:
cd $GOROOT/src GOOS=windows GOARCH=amd64 ./make.bash #如果是32位,就GOARCH=386 cd word #回到自己想输出可执行文件的位置 GOOS=windows GOARCH=amd64 go build -o sorter.exe sorter #go build 依赖 $GOPATH,这个就不多说了。
效果图:













