错误:目录中的代码...希望导入“ ...”-我该怎么办?

我在Go中有项目。设置调试器并在Visual Code中启动后, 它失败并显示此错误。我正在/usr/local/go

中使用go 1.13.4

/usr/lib/go-1.10/src/crypto/tls/cipher_suites.go:18:2: code in directory /usr/lib/go-1.10/src/vendor/golang_org/x/crypto/chacha20poly1305 expects import "golang.org/x/crypto/chacha20poly1305" /usr/lib/go-1.10/src/crypto/x509/x509.go:36:2: code in directory /usr/lib/go-1.10/src/vendor/golang_org/x/crypto/cryptobyte expects import "golang.org/x/crypto/cryptobyte" /usr/lib/go-1.10/src/crypto/x509/x509.go:37:2: code in directory /usr/lib/go-1.10/src/vendor/golang_org/x/crypto/cryptobyte/asn1 expects import "golang.org/x/crypto/cryptobyte/asn1" /usr/lib/go-1.10/src/crypto/tls/key_agreement.go:20:2: code in directory /usr/lib/go-1.10/src/vendor/golang_org/x/crypto/curve25519 expects import "golang.org/x/crypto/curve25519" /usr/lib/go-1.10/src/net/http/h2_bundle.go:48:2: code in directory /usr/lib/go-1.10/src/vendor/golang_org/x/net/idna expects import "golang_org/x/text/internal/export/idna" /usr/lib/go-1.10/src/net/http/transport.go:32:2: code in directory /usr/lib/go-1.10/src/vendor/golang_org/x/net/proxy expects import "golang.org/x/net/proxy"

wsyxdl 回答:错误:目录中的代码...希望导入“ ...”-我该怎么办?

您的问题与调试器无关。如果您would have searched for the key parts of these errors,您将发现该错误是由于v1.4 Go支持所谓的"canonical imports"

您项目中的某些软件包很可能是使用其“托管” URL(例如github.com/what/ever)而不是错误消息所建议的规范URL出售的。

正确的解决方案是以正确的方式补偿受影响的软件包。

如果您只是想无论如何都按“原样”构建代码,则可以编辑这些软件包的代码以从其中删除“规范导入注释”。

,

PATH上有可用的新版Go时,似乎会发生这种情况。

我通过从/ usr / local卸载Go 1.13来解决该问题,但是如果需要安装多个版本,可能会有更好的方法来处理它。

我将与go.goroot一起使用的VSCode Go调试器设置为我用于项目的Go 1.11安装。我将Go 1.13安装到/ usr / local中以测试功能,然后遇到相同的错误。

如果PATH上有其他Go版本,则似乎正在使用该编译器,但会根据其他Go版本中的标准库源进行编译。在更高的Go版本中,此目录已重命名为vendor/golang.org,并且无法识别以前使用的golang_org hack: https://github.com/golang/go/commit/4d00937cecdea85b6f1eb894a6d28a53f5f2ff8a#diff-44c7c5a1dcc556d22e115d30ec0f11c9

我不确定这是否是Delve的普遍问题,还是VSCode Go扩展如何调用它的问题,但是在我这种情况下,最简单的解决方案是卸载Go 1.13,然后调试器重新开始工作。

本文链接:https://www.f2er.com/3166685.html

大家都在问