$GOBIN 环境变量
$GOBIN:用于存储可执行文件的目录的绝对路径
若配置了$GOBIN当go install 命令生成的是可执行文件时候,可执行文件会存放在此目录下
最先想到: $GOROOT/bin
go.exe 编译器的安装位置,默认是 $GOROOT/bin
修改env文件配置 go env -w 配置名 = 配置值
go build
go build: 编译包 GO 源码,生成可执行文件 前提有 main 包) 默认生成可执行文件的目录是当前目录包下 go build
只对 main 包有效,在当前目录编译生成一个可执行的二进制文件 go build .\uitl.go
#command-Tine-arguments runtime.main_main.f: function main is undeclared in the main package
go build 不带任何参数,会自动检索当前目录下所有main包的源文件,生成一个可执行文件
go install
go insta11: 编译包 GO 源码,主要用来生成库文件和生成可执行文件 是编译包文件(无main包),将编译后的包文件放到 pkg目录下 ( G O P A T H / p k g ) 二是编译生成可执行文件 ( 有 m a i n 包 ) ,没有配置 G O B I N ,将可执行文件放到 b i n 目录( GOPATH/pkg) 二是编译生成可执行文件(有main包),没有配置GOBIN,将可执行文件放到 bin目录( GOPATH/pkg)二是编译生成可执行文件(有main包),没有配置GOBIN,将可执行文件放到bin目录(GOPATH/bin),若配置了GOBIN 就在 GOBIN 目录
包名和目录名保证一致,但这不是强制规定同一目录下,所有源文件必须使用相同的包名称
go mod 特性编译影响 GO111MODULE
go mod的特性实在1.11版本中提出的,在1.16版本中默认开启了这项功能,主要有两个功能:不需要将当前的代码设置在 $GOPATH/src 目录下就能完成编译 (需要有 go.mod)
golang对第三方的包管理更为合适
解释:
默认不打开 go mod 功能时,所有的代码都需要在 $GOPATH/src 目录下才能完成编译与安装而引入了go mod功能之后,只需要当前代码是某个存在go.mod的目录,就可以进行编译。