阅读量:38
Golang编译步骤详解
1. 安装Golang环境
编译前需先安装Golang编译器。可从Golang官网下载对应操作系统的安装包(如Windows的.msi、Linux的.deb/rpm),或通过包管理器安装(如Ubuntu使用sudo apt install golang-go)。安装完成后,通过go version命令验证安装是否成功,若输出版本号(如go version go1.21.0 linux/amd64)则表示安装完成。
2. 编写Go源代码
使用文本编辑器(如VS Code、Nano)创建.go后缀的源文件(如main.go),并编写符合Go语法的代码。示例代码如下:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
注意:若包名为main,则文件必须包含main()函数(程序入口);若包名为其他名称(如utils),则文件为工具包,无法直接编译为可执行文件。
3. 本地编译(生成当前系统可执行文件)
在源文件所在目录下,使用go build命令编译:
- 编译单个文件:
go build main.go(生成与文件名同名的可执行文件,如main(Linux/macOS)或main.exe(Windows))。 - 编译整个包:进入包所在目录(包含多个
.go文件),直接运行go build(自动编译目录下所有文件)。 - 指定输出文件名:通过
-o参数指定名称,如go build -o myapp main.go(生成myapp可执行文件)。
4. 运行可执行文件
- 当前目录运行:在终端输入
./可执行文件名(如./main、./myapp),程序将执行并输出结果(如Hello, World!\n)。 - 跨目录运行:若可执行文件在其他目录,需通过
cd命令进入目标目录,再执行上述命令。
5. 清理编译产物
使用go clean命令删除当前目录下的编译临时文件(如*.exe、*.out)和缓存文件(如go-build目录),保持项目目录整洁。
6. 交叉编译(生成其他系统可执行文件)
若需在当前系统(如Windows)编译出其他系统(如Linux)的可执行文件,需设置环境变量并使用go build:
- 设置环境变量:通过
GOOS(目标操作系统)和GOARCH(目标架构)指定目标平台,如:- Windows编译Linux 64位:
set GOOS=linuxset GOARCH=amd64(或直接GOOS=linux GOARCH=amd64)。 - macOS编译Windows 64位:
GOOS=windowsGOARCH=amd64。
- Windows编译Linux 64位:
- 禁用CGO:交叉编译时需禁用CGO(避免依赖本地C库),添加
CGO_ENABLED=0(如CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build)。 - 执行编译:运行
go build -o linux_app main.go(生成linux_app,可在Linux系统运行)。
7. 常用编译选项
-v:显示编译的包名(如go build -v main.go)。-a:强制重新编译所有包(忽略缓存,适用于依赖更新后)。-race:开启竞态检测(检测并发访问冲突,如go build -race main.go)。-ldflags:设置链接器参数(如压缩符号表和调试信息,go build -ldflags="-s -w" main.go可减小可执行文件体积)。