首先,要明确的是,我来自 Java 世界,我一直在编程一段时间,我真的很喜欢它。我有一个关于打包系统和导入的小问题,如果我正在导入一个使用另一个库的库并且我已经在我的项目中使用该库,我该如何消除重复(如果可能的话),换句话说:A是主程序,C和B是库,然后:C被添加到A B使用C然后 B 也被添加到 AAProject/ src/ LibC/ src/ somefiles.go LibB/ src/ LibC somefiles.go app.go所以现在我有两个 C 库,一个从一开始就在 A 中,一个在 B 中,因为 B 依赖于 C。我知道这有点令人困惑,但在 Java 世界中,我们有 Ant 和 Maven,这些构建工具让我们很容易处理依赖项。有什么想法吗?
1 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
在 Go 中,没有重复的包。
首先,您应该在如何编写 Go 代码中阅读有关 Go 工作区的信息。
根据您的问题,您的目录结构应如下所示:
gopath (gopath is the path of a directory in your $GOPATH list)
├── bin
│ └── projecta
├── pkg
│ └── linux_amd64
│ └── projecta
│ ├── libb.a
│ └── libc.a
└── src
└── projecta
├── a.go
├── libb
│ └── b.go
└── libc
└── c.go
在哪里,
gopath/src/projecta/a.go:
package main
import (
"projecta/libb"
"projecta/libc"
)
func a() {
libb.B()
libc.C()
}
func main() { a() }
gopath/src/projecta/libb/b.go:
package libb
import (
"projecta/libc"
)
func B() { libc.C() }
gopath/src/projecta/libc/c.go:
package libc
func C() {}
- 1 回答
- 0 关注
- 184 浏览
添加回答
举报
0/150
提交
取消