在编译Golang程序前,需先安装Golang编译器。有两种常见方式:
sudo apt update
sudo apt install golang-go
sudo apt update
sudo apt install -y git gcc make
克隆Go官方源码仓库:git clone https://github.com/golang/go.git
cd 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/myproject
cd $GOPATH/src/myproject
初始化Go模块(生成go.mod文件,记录依赖信息):
go mod init myproject
创建main.go文件,编写示例程序:
package main
import "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上的完整编译过程,从环境准备到程序运行,适用于大多数开发场景。