golang程序的跨平台编译

来源:互联网 发布:吉他知乎 编辑:程序博客网 时间:2024/05/22 10:31

golang程序的跨平台编译

最近写的golang服务器程序, 开始在X86_64上面运行,后来要求在ARM平台上执行,查阅了若干资料反复尝试才完成任务,程序可以在ARM上面执行,将关键点记录以备将来查阅。

golang的编译环境安装在X86_64上,设置主机变量如下,表示宿主环境为X64下的linux,

GOHOSTARCH="amd64"
GOHOSTOS="linux"

当编译X64下的目标程序时,设置目标变量如下, 表示目标执行环境为X64下的linux,

GOARCH="amd64"

   GOOS="linux"

     如果目标环境为ARM下的linux, 比如树莓派盒子,设置变量如下:

GOARCH="arm"

GOARM="7"

GOOS="linux"

在工程的根目录下,执行go build即可生成目标程序,使用readelf -h ./exc_bin可以查看目标文件的信息,

ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           Advanced Micro Devices X86-64

其中Machine表示目标平台,X86就是Intel平台,如果是ARM,就是树莓盒子了。

0 0
原创粉丝点击