以下是错误消息:
% go get
can't load package: package .: no buildable Go source files in /Users/7yan00
% echo $GOPATH
/Users/7yan00/Golang
您如何解决该错误?
答案 0 :(得分:43)
确保在Go项目源文件夹中使用该命令(如/Users/7yan00/Golang/src/myProject
)。
另一种选择(similar to this bug)是使用-d
选项(请参阅go get
command)
go get -d
-d
标志指示在下载软件包后停止;也就是说,它指示不要安装软件包。
看看你的情况是否有帮助。
但更一般地说,如in this thread所述:
go get
适用于软件包,不适用于存储库。所以,如果你想要一个特定的包,比如
go.text/encoding
,那么使用
go get code.google.com/p/go.text/encoding
如果您想要该存储库中的所有包,请使用
...
表示:
go get code.google.com/p/go.text/...
答案 1 :(得分:28)
您应该检查$GOPATH
目录。如果包名称有空目录,go get
不会从存储库下载包。
例如,如果我想从它的github存储库中获取github.com/googollee/go-socket.io
包,并且github.com/googollee/go-socket.io
中已经有一个空目录$GOPATH
,{{1 没有下载软件包,然后抱怨目录中没有可构建的Go源文件。首先删除所有空目录。
答案 2 :(得分:10)
该消息的另一个可能原因是:
无法加载包:....:没有可构建的Go源文件
编译源文件的时间是:
ErrorType
在这种情况下,文件会被忽略,并且无法按要求构建。https://golang.org/pkg/go/build/
记录了此行为答案 3 :(得分:6)
根据我的情况解决此问题:
我必须指定一个更具体的子包来安装。
错:
go get github.com/garyburd/redigo
正确:
go get github.com/garyburd/redigo/redis
答案 4 :(得分:2)
如果您想要该存储库中的所有包,请使用...
表示,例如:
go get code.google.com/p/go.text/...
答案 5 :(得分:0)
我有这个确切的错误代码,检查我的存储库后发现没有go文件,但实际上只有更多目录。因此,对我来说,这不仅仅是一个红色的鲱鱼,而且是一个错误。
我建议这样做
转到环境
并确保一切都应该正常进行,检查操作系统中的环境变量,并确保您的shell(bash或w / e)不会通过.bash_profile或.bashrc文件之类的东西来破坏它。 。祝你好运。
答案 6 :(得分:0)
您可以尝试从mod下载软件包
switch(hashfunc(input)) {
case hashfunc("hello"):
std::cout << "world\n";
break;
}