之前写过关于go交叉编译的博客见 Golang交叉编译,go的交叉编译实在是太棒了!对小白非常友好,几行命令就能编译出对应架构的二进制可执行程序!
0、编写go程序
wol.go
package main
import "fmt"
func main() {
fmt.Println("HELLO FROM GO!")
}
1、交叉编译
在我的windows系统上wol.go同级目录下执行下列命令:
SET GOOS=linux
SET GOARCH=mipsle
go build wol.go
完成后会得到wol文件,将其复制到目标mips机器上。这里多说一句,就是第二个命令,为什么是mipsle而不是mips?mips存在两种架构,分别为大端和小端,其中mips代表大端方式;而mipsle代表小端方式,我的小米路由器使用的mips处理器是小端方式,如果我们使用mips则运行会出现如下错误:
./wol: line 1: syntax error: unexpected "("
所以,这里我使用mipsle。
2、运行程序
root@XiaoQiang:/userdisk# chmod +x wol
root@XiaoQiang:/userdisk# ./wol
HELLO FROM GO!
root@XiaoQiang:/userdisk#