2 回答
TA贡献1725条经验 获得超7个赞
包构建
走路径
Go 路径是包含 Go 源代码的目录树列表。咨询解决在标准 Go 树中找不到的导入。默认路径是 GOPATH 环境变量的值,解释为适合操作系统的路径列表(在 Unix 上,该变量是一个以冒号分隔的字符串;在 Windows 上,一个分号分隔的字符串;在 Plan 9 上,一个列表)。
Go 路径中列出的每个目录都必须具有规定的结构:
src/ 目录包含源代码。'src' 下面的路径决定了导入路径或可执行文件名称。
pkg/ 目录保存已安装的包对象。在 Go 树中,每个目标操作系统和架构对都有自己的 pkg 子目录 (pkg/GOOS_GOARCH)。
如果 DIR 是 Go 路径中列出的目录,则可以将 DIR/src/foo/bar 中包含源代码的包作为“foo/bar”导入,并将其编译形式安装到“DIR/pkg/GOOS_GOARCH/foo/bar”。 a”(或者,对于 gccgo,“DIR/pkg/gccgo/foo/libbar.a”)。
bin/ 目录保存已编译的命令。每个命令都以其源目录命名,但只使用最后一个元素,而不是整个路径。也就是说,在 DIR/src/foo/quux 中带有 source 的命令安装在 DIR/bin/quux 中,而不是 DIR/bin/foo/quux 中。foo/ 被剥离,以便您可以将 DIR/bin 添加到您的 PATH 以获取已安装的命令。
这是一个示例目录布局:
GOPATH=/home/user/gocode
/home/user/gocode/
src/
foo/
bar/ (go code in package bar)
x.go
quux/ (go code in package main)
y.go
bin/
quux (installed command)
pkg/
linux_amd64/
foo/
bar.a (installed package object)
使用规定的目录结构,包括src用作目录名。根据例子。不要使用src, pkg, 或bin作为包名。
go-orm
--| mine.go
--| src <== !? Don't use src as a package name.
-----| src.go
-----| db
--------| DBConnection.go
- 2 回答
- 0 关注
- 183 浏览
添加回答
举报