在Ubuntu上编译Golang项目前,需先安装Go编译器。推荐通过系统包管理器安装(简单便捷)或手动下载安装(版本可控)。
sudo apt update
sudo apt install golang-go
go1.21.linux-amd64.tar.gz),执行以下命令:wget https://golang.org/dl/go1.21.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.linux-amd64.tar.gz
安装完成后,需设置GOROOT(Go安装路径)、GOPATH(工作目录)和PATH(可执行文件路径),确保全局可用。
~/.bashrc(或~/.zshrc,根据shell类型调整)文件:echo "export GOROOT=/usr/local/go" >> ~/.bashrc
echo "export GOPATH=\$HOME/go" >> ~/.bashrc
echo "export PATH=\$PATH:\$GOROOT/bin:\$GOPATH/bin" >> ~/.bashrc
source ~/.bashrc
通过以下命令检查Go版本,确认安装成功:
go version
输出应类似go1.21 linux/amd64(版本号以实际安装为准)。
建议使用GOPATH规范的项目结构(如$GOPATH/src/your_project),或直接在用户目录下创建(Go Modules模式下无需严格遵循GOPATH)。
GOPATH):mkdir -p $GOPATH/src/your_project
cd $GOPATH/src/your_project
mkdir -p ~/your_project && cd ~/your_project
Go Modules是Go官方推荐的依赖管理工具,避免传统GOPATH的繁琐。在项目根目录初始化模块:
go mod init your_project
这会生成go.mod文件(记录项目模块名和依赖版本)。
在项目目录下创建main.go文件(入口文件),编写简单程序测试:
package main
import "fmt"
func main() {
fmt.Println("Hello, Ubuntu Golang Project!")
}
go build,生成与项目目录同名的可执行文件(如your_project):go build
-o参数自定义可执行文件名(如myapp):go build -o myapp
go build ./...递归编译所有包:go build ./...
编译成功后,直接运行生成的可执行文件:
./myapp
输出应为Hello, Ubuntu Golang Project!。
若需为Windows、ARM等平台编译,可通过设置GOOS(目标操作系统)和GOARCH(目标架构)环境变量实现。常见组合:
GOOS=windows GOARCH=amd64 go build -o myapp.exe
GOOS=linux GOARCH=arm GOARM=7 go build -o myapp_arm
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o myapp_static
若需隔离环境或简化部署,可使用Docker打包项目:
FROM golang:1.21 as builder
WORKDIR /app
COPY . .
RUN go mod download
RUN CGO_ENABLED=0 GOOS=linux go build -o myapp .
FROM alpine:latest
WORKDIR /root/
COPY --from=builder /app/myapp .
CMD ["./myapp"]
docker build -t your_project .
docker run -it --rm your_project
以上步骤覆盖了Golang项目在Ubuntu上的编译、运行及进阶需求(交叉编译、Docker部署),可根据项目实际情况调整。