这个 repo有3个go文件都以"package lumber"开头.要使用这个包,我应该把它放在我的GOROOT简单
import lumber
Run Code Online (Sandbox Code Playgroud)
在我的程序中.此包中的变量和类型如何跨多个文件相互连接?go编译器如何知道首先要读取哪个文件?
如果我想阅读包,我应该在哪里开始阅读以了解包装?这里的事情到底是什么?
jim*_*imt 23
详细说明jnml的答案:
import "foo/bar"在代码中使用时,不是指源文件(位于其中$GOPATH/src/foo/bar/).
相反,您指的是一个已编译的包文件$GOPATH/pkg/$GOOS_$GOARCH/foo/bar.a.当您构建自己的代码,并且编译器发现该foo/bar软件包尚未编译(或已过期)时,它将自动为您执行此操作.
它通过整理$GOPATH/src/foo/bar目录中的所有相关源文件并将它们构建到单个bar.a文件中来完成此操作,该文件将安装在pkg目录中.然后使用您自己的程序继续编译.
对于所有导入的包以及由它们导入的包重复此过程,一直到依赖关系链.
*)如何整理文件,取决于文件本身的命名方式以及文件内部存在的构建标记类型.
要深入了解其工作原理,请参阅构建文档.
zzz*_*zzz 15
不,你不应该"把它放在我的GOROOT"中.你应该执行
$ go get github.com/jcelliott/lumber
Run Code Online (Sandbox Code Playgroud)
这将克隆存储库$GOPATH/src/github.com/jcelliott/lumber.然后,您可以通过在代码中将其导入来使用该包
import "github.com/jcelliott/lumber"
Run Code Online (Sandbox Code Playgroud)
关于范围规则:声明和范围
| 归档时间: |
|
| 查看次数: |
11692 次 |
| 最近记录: |