---
title: Go编译系统迁移
description: "Go语言属于编译型语言，从源码到可执行文件的过程如图1所示。Go程序最终编译为二进制文件，由操作系统加载到存储器之后由CPU执行，过程类似于C、C++语言，差别是Go有一套特有的编译器、汇编器、链接器。由于鲲鹏服务器和x86体系结构存在差异，导致Go编译系统也存在不同，迁移过程中需要针对不同架构安装不同的编译器套件，当代码中包含Go汇编时还需进行适配修改。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenggrf/codeprtr/kunpengtaishanporting_12_0103.html
sourcePath: /source/zh/kunpenggrf/codeprtr/kunpengtaishanporting_12_0103.html
indexId: 4e5a1d4f562848d56275362db066c8d678fcfd5343541a1ef4f7588608341c6865
---
# Go编译系统迁移

Go语言属于编译型语言，从源码到可执行文件的过程如图1所示。Go程序最终编译为二进制文件，由操作系统加载到存储器之后由CPU执行，过程类似于C、C++语言，差别是Go有一套特有的编译器、汇编器、链接器。由于鲲鹏服务器和x86体系结构存在差异，导致Go编译系统也存在不同，迁移过程中需要针对不同架构安装不同的编译器套件，当代码中包含Go汇编时还需进行适配修改。

图1 Go程序编译执行过程

以下主要介绍鲲鹏处理器下Go编译系统迁移，首先下载最新的AArch64 Golang，最新的版本对AArch64有更好的支持，推荐版本1.13及以上。

下载地址：https://go.dev/dl/(https://go.dev/dl/)

国内下载地址：https://studygolang.com/dl(https://studygolang.com/dl)

将下载的二进制包解压至安装目录，这里以/usr/local为例，通常需要设置3个环境变量GOROOT（软件包安装在系统上的位置），GOPATH（工作目录的位置、需要根据实际代码目录设置）和PATH（设置Go的bin目录），在.profile或/etc/profile文件中设置环境变量如下：

```
echo "export GOROOT=/usr/local/go" >> ~/.profile
echo "export PATH=$GOPATH/bin:$GOROOT/bin:$PATH" >> ~/.profile
source ~/.profile
```
