运行错误:Illegal instruction 搜索得知:https://github.com/golang/go/issues/18483

大致含义是指很有可能是由于CPU不支持VFP特性导致的问题,通过/proc/cpuinfo查看得知:

$ cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 1 (v7l)
BogoMIPS : 1594.16
Features : half thumb fastmult edsp tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x4
CPU part : 0xc09
CPU revision : 1

Hardware : ZTE ZX279127 (Device Tree)
Revision : 0000
Serial : 0000000000000000

看到不支持vfp,提示使用GOARM=5进行编译,于是编译命令如下:

GOARM=5 GOARCH=arm GOOS=linux CGO_ENABLED=0 go build -ldflags "-extldflags '-static' -w -s " -o main-armv5

问题解决。

关于VFP(Vector Floating Point)是浮点处理单元协处理器,提供低功耗的单精度和双精度浮点计算,更多的资料可以查看WiKi: https://en.wikipedia.org/wiki/ARM_architecture