go目录结构和交叉编译

环境变量

GOROOT:GO语言的安装路径
GOPATH:项目目录
GOBIN:执行go install go文件时,生成可执行文件的路径,通常设置为GOPATH/bin。

GOPATH目录结构

GOPATH/src目录下放源代码文件。
GOPATH/pkg目录下放执行go install 目录名后生成的包/库文件。
GOPATH/bin目录下放可执行文件。

go build、go install和go run的区别

go build 目录名或者go文件,在当前目录下生成可执行文件。
go run 目录名或者go文件,编译并运行,不会留下可执行文件。

go install功能上和go build类似。
go install 目录名,在GOPATH/bin目录下生成可执行文件。
go install go文件,在GOBIN下生成可执行文件。
尽量使用go install,规范项目整体结构。

交叉编译

Go支持在一个平台下生成另一个平台可执行文件的交叉编译功能。
GOOS:目标平台的操作系统,支持linux和windows等。
GOARCH:目标平台的CPU构架,包括arm64和amd64等。

在当前目录下生成linux操作系统中cpu是amd64的二进制可执行文件:
GOOS=linux GOARCH=amd64 go build -o main main.go
其中,-o指定可执行文件名称。

编译上与Java的区别
Java编译出来的是通用的字节码,运行在不同平台的JVM内,实现”一次编译,到处运行”。
go编译出来的是不同平台的机器码,不同平台上运行不同的二进制文件,实现“一次编码,到处编译”。

posted on 2023-07-15 08:09  王景迁  阅读(123)  评论(0编辑  收藏  举报

导航