golang代码文件目录组织、包目录组织学习笔记
程序员文章站
2022-03-20 21:55:24
windows环境下:设置环境变量:GOPATHGOPATH目录下必须要有固定的文件组织结构:src、pkg、bin(其中src必须要有,所有源码都放到src目录下。而pkg和bin会在执行go install命令时自动生成)go build会在当前目录生成可执行文件;对于不包含入口点(entry ......
windows环境下:
设置环境变量:GOPATH
GOPATH目录下必须要有固定的文件组织结构:src、pkg、bin(其中src必须要有,所有源码都放到src目录下。而pkg和bin会在执行go install命令时自动生成)
go build会在当前目录生成可执行文件;
对于不包含入口点(entry point,main函数)的源文件,执行go install 命令,会生成以.a为后缀的库文件并安装到pkg目录下;
对于包含入口点main函数的源文件,执行go install命令,会把生成的可执行文件移到bin目录(如果当前目录有对应的可执行文件,也会删除当前目录的可执行文件),并把依赖的包编译为以.a为后缀的库文件并安装到pkg目录;
设置环境变量:GOPATH
GOPATH目录下必须要有固定的文件组织结构:src、pkg、bin(其中src必须要有,所有源码都放到src目录下。而pkg和bin会在执行go install命令时自动生成)
go build会在当前目录生成可执行文件;
对于不包含入口点(entry point,main函数)的源文件,执行go install 命令,会生成以.a为后缀的库文件并安装到pkg目录下;
对于包含入口点main函数的源文件,执行go install命令,会把生成的可执行文件移到bin目录(如果当前目录有对应的可执行文件,也会删除当前目录的可执行文件),并把依赖的包编译为以.a为后缀的库文件并安装到pkg目录;
go语言不强制要求包名跟目录名一致,但提倡这样做。
若:
src/pkgA/a.go
package packageA
func FunA(){
...}
则,在其他包引用包packageA里面的FunA的时候,要这样写:
import(
"pkaA"
)
packageA.FunA().
go对于引用的包的搜索顺序是:
先到go安装根目录GOROOT去查找;
然后到GOPATH对应地址列表去查找;(如果没有设置GOPATH,go会有一个默认目录,具体可以参考go help gopath)