本文章从 go build/install 命令开始说起,提炼出 golang 目录结构与编译规则。
0.go build 与 go install 命令对于文件,目录的规则是一样的。
1.go build 后面可以接文件, 此时,从当前目录出发找到指定的文件编译。
2.go build 后面可以接目录(看起来像是包名,但其实是目录). 从 GoPath 开始找到这个目录,然后编译下面所有的 go 文件. 再强调一次: go build 后面的目录并 非是相对当前目录的,它是相对 GoPath 的。
3.go build 后面接目录,只会编译此目录下的 go 文件,并不会递归处理子目录下的 go 文件。
4.go build 后面可以不接参数,表示编译当前目录下的所有 go 文件. 当前目录下若没有 go 文件则会编译报错。
5.当一个目录下存在引入不同包的 go 文件,使用 go build 会报错。
6.GOPATH 下的目录下的 src 目录可以被自动忽略,这是因为, go 语言假设所有工程的源码都放于 src 文件夹下。看后面的举例即可明白。
-----------------------------------------------------------------------------------------------------------------------------------