golang编译ubuntu项目步骤
在Ubuntu上编译Golang项目,说起来其实不算复杂,但每一个环节都有不少细节值得注意。从环境搭建到最终部署,每一步踩过的坑,今天一次性说清楚。 1. 安装Golang环境 要在Ubuntu上开始Go开发,第一步自然是安装Go编译器。常见的做法有两种:通过系统包管理器安装(简单省事,但版本可能偏
在Ubuntu上编译Golang项目,说起来其实不算复杂,但每一个环节都有不少细节值得注意。从环境搭建到最终部署,每一步踩过的坑,今天一次性说清楚。
1. 安装Golang环境
要在Ubuntu上开始Go开发,第一步自然是安装Go编译器。常见的做法有两种:通过系统包管理器安装(简单省事,但版本可能偏旧),或者手动下载安装包(版本可控,推荐尝鲜最新稳定版)。

- 通过apt安装(适合快速上手,但版本可能较旧):
sudo apt update sudo apt install golang-go - 手动下载安装(推荐最新稳定版):先去Go官方下载页面拿到Ubuntu对应的tar包(比如
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
2. 配置环境变量
安装完成后,还得告诉系统Go在哪、工作目录是什么。需要设置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
3. 验证安装
环境配好了,跑一下下面这条命令,看看版本对不对:
go version
如果输出类似go1.21 linux/amd64这样,那就妥了(版本号以实际安装为准)。
4. 创建项目目录
在Go的世界里,项目目录结构有两种主流玩法。传统方式要严格按照GOPATH规范(比如$GOPATH/src/你的项目名)。但如果你用的是Go Modules(推荐),那就可以随意一些,直接在用户目录下创建项目文件夹就行。
- 传统方式(严格遵循
GOPATH):mkdir -p $GOPATH/src/your_project cd $GOPATH/src/your_project - 简化方式(用Go Modules的话直接这样):
mkdir -p ~/your_project && cd ~/your_project
5. 初始化Go Modules(推荐,Go 1.11+)
Go Modules是官方钦定的依赖管理工具,用了它就不用头疼GOPATH的那些限制。在项目根目录下执行:
go mod init your_project
这条命令会生成一个go.mod文件,里面记录模块名和依赖版本号,一清二楚。
6. 编写Go代码
现在来写个简单的入口程序,测试一下整个流程是否通顺。在项目目录下创建main.go:
package main
import "fmt"
func main() {
fmt.Println("Hello, Ubuntu Golang Project!")
}
7. 编译项目
- 基本编译:在项目根目录直接运行
go build,会生成一个与项目目录同名的可执行文件(比如your_project):go build - 指定输出文件名:用
-o参数可以自定义名字,比如想叫myapp:go build -o myapp - 编译所有包:如果项目里有多个子包,用
go build ./...一次性递归编译:go build ./...
8. 运行程序
编译成功后,直接运行生成的可执行文件就能看到效果:
./myapp
终端里应该会输出Hello, Ubuntu Golang Project!。
9. 可选:交叉编译(为其他平台编译)
有时候我们需要把程序部署到其他架构或者操作系统上,Go原生支持交叉编译,只要设置GOOS(目标操作系统)和GOARCH(目标架构)环境变量就行。几个常见组合:
- Windows 64位:
GOOS=windows GOARCH=amd64 go build -o myapp.exe - ARMv7 Linux(比如树莓派):
GOOS=linux GOARCH=arm GOARM=7 go build -o myapp_arm - 静态链接(无外部依赖):如果目标机器上没有Go环境,最好静态编译,禁用CGO:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o myapp_static
10. 可选:使用Docker容器化部署
对于需要隔离运行环境或者简化部署的场景,用Docker打包项目再合适不过。
- 在项目根目录创建
Dockerfile: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镜像:
docker build -t your_project . docker run -it --rm your_project
以上这些步骤基本覆盖了Golang项目在Ubuntu上的编译、运行以及进阶需求(交叉编译、Docker部署)。实际项目中可以根据具体情况灵活调整,比如项目依赖多的时候记得先go mod tidy一下,免得缺包。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















