在编译Golang程序前,需先安装Golang编译器。有两种常见方式:

sudo apt updatesudo apt install golang-gosudo apt updatesudo apt install -y git gcc make克隆Go官方源码仓库:git clone https://github.com/golang/go.gitcd go/src设置环境变量(用于编译Go本身):export GOROOT_BOOTSTRAP=$(pwd)/../..export PATH=$GOROOT_BOOTSTRAP/bin:$PATH编译Go源码:cd $GOROOT./all.bash编译完成后,Go会安装在$HOME/go目录(源码编译方式)或/usr/local/go目录(APT安装方式)。无论通过哪种方式安装,都需要配置环境变量以让系统识别Golang命令:编辑~/.bashrc或~/.profile文件,添加以下内容:
export PATH=$PATH:/usr/local/go/bin# 替换为源码编译的安装路径(如$HOME/go/bin)export GOPATH=$HOME/go# 设置工作目录(存放代码和依赖)export GOBIN=$GOPATH/bin# 设置二进制文件输出目录export GO111MODULE=on # 启用Go Modules(推荐,管理依赖)使配置生效:
source ~/.bashrc# 或 source ~/.profile验证安装:
go version若输出类似go version go1.21.0 linux/amd64,则说明安装成功。
创建项目目录(推荐使用Go Modules管理依赖):
mkdir -p $GOPATH/src/myprojectcd $GOPATH/src/myproject初始化Go模块(生成go.mod文件,记录依赖信息):
go mod init myproject创建main.go文件,编写示例程序:
package mainimport "fmt"func main() {fmt.Println("Hello, Ubuntu Golang!")}编译单个文件:在main.go所在目录运行:
go build main.go生成的可执行文件默认命名为main(Windows下为main.exe)。
编译整个项目:在项目根目录(含go.mod文件)运行:
go build会自动编译项目中的所有依赖,并生成可执行文件。
交叉编译(为其他平台编译):例如,为Linux 64位系统编译(无需CGO):
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o myproject-linux生成的myproject-linux可在Linux服务器上运行。
若使用go build生成可执行文件,直接运行:
./main# 或 ./myproject-linux(交叉编译后的文件)输出:Hello, Ubuntu Golang!
若使用go run直接运行(无需生成可执行文件):
go run main.go效果与go build后运行一致。
若项目需要第三方库,可通过go get命令下载并添加到go.mod文件:
go get github.com/gin-gonic/gin# 示例:下载Gin框架之后运行go build或go run时,Golang会自动处理依赖关系。
以上流程覆盖了Golang在Ubuntu上的完整编译过程,从环境准备到程序运行,适用于大多数开发场景。