我正在尝试编译由多个模块组成的Go程序,如下所示:// main.gopackage mainimport "mst"// do something interesting involving minimum spanning trees// src/mst/kruskal.goimport "disjsets"// Kruskal's algorithm follows// src/disjsets/disjsets.go// implements disjoint sets with union-find现在,当我在包含和的目录中运行其中一个go run main.go或go build之后export GOPATH=.时,它会打印main.gosrc# disjsetsopen src/disjsets/disjsets.go: No such file or directory我不明白这一点。文件在那里ls -l src/disjsets/disjsets.go确认。这怎么会发生?disjsets.go如果Go要找到文件,该文件应放在哪里?(Google Go 1.0.2)
2 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
将您的GOPATH设置为某个位置并永久导出。然后把一些包blah放到目录中
$GOPATH/src/foo/bar/baz/blah # (1)
或者
$GOPATH/src/blah # (2)
或者
$GOPATH/src/qux/blah # (3) etc.
导入blah为其他包
import "foo/bar/baz/blah" // (1)
或者
import "blah" // (2)
或者
import "qux/blah" // (3)
该目录中的软件包将包含软件包文件。假设您只有一个,blah.go。那么它的位置是
$GOPATH/src/foo/bar/baz/blah/blah.go // (1)
$GOPATH/src/blah/blah.go // (2)
$GOPATH/src/qux/blah/blah.go // (3)
如果命名了blah包源文件proj.go,则改为说,
$GOPATH/src/foo/bar/baz/blah/proj.go // (1)
$GOPATH/src/blah/proj.go // (2)
$GOPATH/src/qux/blah/proj.go // (3)
但导入路径将与前一种情况相同。
- 2 回答
- 0 关注
- 311 浏览
添加回答
举报
0/150
提交
取消