为了账号安全,请及时绑定邮箱和手机立即绑定

Go编译器“没有这样的文件或目录”是什么意思?

Go编译器“没有这样的文件或目录”是什么意思?

Go
慕的地8271018 2021-05-04 17:23:26
我正在尝试编译由多个模块组成的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)

但导入路径将与前一种情况相同。


查看完整回答
反对 回复 2021-05-31
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

好的,这似乎可以解决它:

export GOPATH=`pwd`

显然,它必须是一条绝对路径。不过,我仍然发现错误消息非常令人困惑。


查看完整回答
反对 回复 2021-05-31
  • 2 回答
  • 0 关注
  • 311 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信