golang编译器在ubuntu上怎么用
1. 安装Golang编译器
-
推荐方式:使用官方二进制包(稳定且易管理)
更新系统包列表并安装依赖:sudo apt update
。
下载最新稳定版Go二进制包(以Go 1.20.5为例):wget https://golang.org/dl/go1.20.5.linux-amd64.tar.gz
。
解压至/usr/local
目录:sudo tar -C /usr/local -xzf go1.20.5.linux-amd64.tar.gz
。
配置环境变量:编辑~/.bashrc
(或~/.zshrc
),添加以下内容:export GOROOT=/usr/local/go # Go安装根目录 export GOPATH=$HOME/go # 工作空间目录(存放项目代码) export PATH=$PATH:$GOROOT/bin:$GOPATH/bin # 将Go命令加入PATH
使配置生效:
source ~/.bashrc
。
验证安装:运行go version
,若输出类似go version go1.20.5 linux/amd64
则表示成功。 -
备选方式:使用Ubuntu APT仓库(简单但版本可能滞后)
执行以下命令快速安装:sudo apt install golang-go
安装完成后,同样通过
go version
验证。
2. 编写第一个Go程序
- 创建项目目录:建议遵循Go工作空间结构,创建
~/go/src/hello
目录:mkdir -p ~/go/src/hello
。 - 编写代码:进入目录并创建
main.go
文件,内容如下:package main import "fmt" func main() { fmt.Println("Hello, Ubuntu & Golang!") }
- 快速运行:直接使用
go run
命令无需编译即可执行:go run main.go
,终端将输出Hello, Ubuntu & Golang!
。
3. 编译Go程序
-
本地编译(生成当前系统可执行文件)
在main.go
所在目录运行go build
,默认生成名为main
的可执行文件(Windows下为.exe
):go build
。
指定输出文件名(如hello
):go build -o hello
。
运行编译后的程序:./hello
,输出与go run
一致。 -
交叉编译(生成其他平台可执行文件,如Linux服务器)
若需为Linux 64位系统编译(即使当前在Ubuntu上),需设置环境变量并指定目标平台:export GOOS=linux # 目标操作系统:linux export GOARCH=amd64 # 目标架构:64位 go build -o hello-linux # 生成名为hello-linux的可执行文件
生成的
hello-linux
文件可在Linux服务器上直接运行(无需安装Go环境)。
4. 优化编译效率
- 启用编译缓存:Go默认开启编译缓存(存储已编译的包),可通过
-buildcache=true
显式启用(默认值),避免重复编译。 - 并行编译:使用
-p
参数指定并行编译的goroutine数量(如-p 4
表示用4个核心),加快编译速度:go build -p 4
。 - 精简二进制文件:使用
-ldflags="-s -w"
去除调试信息和符号表,减小文件体积(通常可减少30%~50%):go build -ldflags="-s -w" -o hello-small
。 - 强制重新编译:使用
-a
参数强制重新编译所有包(忽略缓存),适用于依赖更新后的场景:go build -a
。
5. 常见问题解决
- 权限问题:若编译时提示“Permission denied”,需为输出文件添加可执行权限:
chmod +x hello
,或直接用sudo
(不推荐,除非必要)。 - 依赖下载慢:设置Go模块代理(如国内七牛云代理),加快依赖下载速度:
go env -w GOPROXY=https://goproxy.cn,direct
。 - 交叉编译失败:确保关闭CGO(
CGO_ENABLED=0
),因为CGO依赖C库,跨平台时可能不兼容:CGO_ENABLED=0 GOOS=linux go build
。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: golang编译器在ubuntu上怎么用
本文地址: https://pptw.com/jishu/716392.html