温馨提示×

ubuntu下golang怎么编译包

小樊
34
2026-10-04 09:08:29
栏目: 编程语言

在 Ubuntu 下使用 Go(Golang)编译“包”(package),需要先明确你说的**“包”**是指哪一种:


一、编译普通的 Go 包(非 main 包)

Go 中 非 main 包不能直接生成可执行文件,只能被其他包导入使用。

示例

// mypkg/mypkg.go
package mypkg

func Add(a, b int) int {
    return a + b
}

编译检查(不生成文件)

go build ./mypkg

如果没报错,说明包编译通过。

安装到 GOPATH(可选)

go install ./mypkg

二、编译 main 包(生成可执行程序)

只有 package main 才能编译成可执行文件。

示例

// main.go
package main

import "fmt"

func main() {
    fmt.Println("Hello Ubuntu")
}

编译

go build main.go

生成:

./main

指定输出文件名

go build -o myapp main.go

直接运行

go run main.go

三、编译整个项目(多包)

项目结构示例:

myproject/
├── go.mod
├── main.go
└── mypkg/
    └── mypkg.go

初始化模块(首次)

cd myproject
go mod init myproject

编译整个项目

go build ./...

编译并生成可执行文件

go build -o app .

四、交叉编译(可选)

例如在 Ubuntu 上编译 Windows 程序:

GOOS=windows GOARCH=amd64 go build -o app.exe main.go

五、常见命令总结

命令 作用
go build 编译包或程序
go install 编译并安装
go run 编译并运行
go mod init 初始化模块
go clean 清理编译文件

如果你指的是 “如何把 Go 包编译成 .so / 静态库 / 给别人用的包”,可以告诉我,我可以单独讲。

0 踩