Go 基础命令

编译 go build

# 编译当前目录
go build
或者
go build .

# main 包有多个文件的情况,指定文件编译 main 包
go build .\main.go .\func2.go

# 编译指定文件目录p1,不会产生编译文件,仅进行编译检查
go build .\main.go .\func2.go

# 编译时指定编译结果输出
go build -o app.exe

运行 go run

# 运行应用程序时,指定 main 包所在目录
go run .

# 运行应用程序时,指定 main 包所有文件
go run .\main.go .\func2.go

交叉编译

交叉编译需要修改 GOOS、GOARCH、CGO_ENABLED 三个环境变量
GOOS: 目标平台的操作系统(darwin、freebsd、linux、windows)
GOARCH: 目标平台的体系架构32位还是64位(386、amd64、arm)
CGO_ENABLED: 是否启用CGO,交叉编译不支持CGO所以要禁用它

# windows 编译 Liunx 可执行程序
# 设置环境变量, 通过 cmd 执行
set GOOS=linux
set GOARCH=amd64

# 编译,并输出到app文件
go build -o ./out/app .

# 生成完 app 后可上传到 linux 系统上,执行
eg: chmod +x app ; ./app

依赖管理

go mod 命令

# 将模块下载到本地缓存,需要指定模块路径及版本号
go mod download
eg:
go mod download github.com/gin-gonic/gin@v1.9.0

# 初始化一个新的模块到当前目录
go mod init
eg:
go mod init gomodcase

# 添加缺少的依赖,删除未使用的依赖
go mod tidy

# 根据 go.mod 中的依赖项制作 vendor 副本
# 有了vendor 副本,项目将不再依赖本地缓存
go mod vendor

# 验证依赖是否正确
go mod verify

# 返回对指定模块的依赖关系最短路径,解释为什么依赖指定包
go mod why
eg:
go mod why github.com/bytedance/sonic

# go get -u 更新模块依赖,并更新 go.mod
go get -u github.com/gin-gonic/gin@v1.8.2

# go install 安装可执行插件
eg:
go install github.com/google/gops@latest

# go clean 清理临时目录中的文件
eg: 清理整个 module 下载的缓存文件
go clean -modcache
posted @ 2024-08-13 17:09  klvchen  阅读(2)  评论(0)    收藏  举报