Golang在Vscode中go build遇到的问题如何解决

Golang在Vscode中go build遇到的问题如何解决 1543392035_1

文件:‘file:///Users/bzy/work/go_project/usersvc/main.go’
严重性:‘错误’
消息:‘go build golang_org/x/crypto/cryptobyte/asn1: open /usr/local/go/pkg/darwin_amd64/vendor/golang_org/x/crypto/cryptobyte/asn1.a: permission denied
go build golang_org/x/net/dns/dnsmessage: open /usr/local/go/pkg/darwin_amd64/vendor/golang_org/x/net/dns/dnsmessage.a: permission denied
go build golang_org/x/crypto/curve25519: open /usr/local/go/pkg/darwin_amd64/vendor/golang_org/x/crypto/curve25519.a: permission denied
go build golang_org/x/text/transform: open /usr/local/go/pkg/darwin_amd64/vendor/golang_org/x/text/transform.a: permission denied
go build golang_org/x/crypto/poly1305: open /usr/local/go/pkg/darwin_amd64/vendor/golang_org/x/crypto/poly1305.a: permission denied
go build golang_org/x/crypto/internal/chacha20: open /usr/local/go/pkg/darwin_amd64/vendor/golang_org/x/crypto/internal/chacha20.a: permission denied
go build golang_org/x/net/route: open /usr/local/go/pkg/darwin_amd64/vendor/golang_org/x/net/route.a: permission denied
go build golang_org/x/net/http2/hpack: open /usr/local/go/pkg/darwin_amd64/vendor/golang_org/x/net/http2/hpack.a: permission denied
go build golang_org/x/text/unicode/bidi: open /usr/local/go/pkg/darwin_amd64/vendor/golang_org/x/text/unicode/bidi.a: permission denied

位置:‘1,1’
来源:’’
代码:‘undefined’


更多关于Golang在Vscode中go build遇到的问题如何解决的实战教程也可以访问 https://www.itying.com/category-94-b0.html

6 回复

尝试修改权限

更多关于Golang在Vscode中go build遇到的问题如何解决的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


当你在项目目录下从命令行运行 go build 时会发生什么?

// 代码示例保留原样

这是因为调试器无法识别原始的 chmod 会改变权限。

在使用 chmod 命令修改 $HOME 目录之外的权限时需要格外小心…

在这种情况下,我建议先卸载 Go,然后重新安装,并仔细检查确保没有遗漏安装说明中的任何步骤。

我在运行 go build 时没有问题,但调试时出现了一些问题,例如 /usr/local/go/pkg/darwin_amd64/vendor/golang_org/x/crypto/cryptobyte/asn1.a: 权限被拒绝

go build golang_org/x/net/dns/dnsmessage: open

这个错误是由于权限问题导致的,Go编译器无法访问系统目录中的vendor包文件。以下是几种解决方案:

方案1:修复文件权限

# 修复Go安装目录的权限
sudo chown -R $(whoami) /usr/local/go/pkg/darwin_amd64/vendor/

方案2:清理并重建缓存

# 清理Go模块缓存
go clean -modcache

# 或者完全清理所有缓存
go clean -cache

# 重新构建项目
go build

方案3:使用vendor目录(如果项目有go.mod)

# 如果使用Go模块,可以创建本地vendor
go mod vendor

# 然后使用vendor构建
go build -mod=vendor

方案4:重新安装Go 如果上述方法无效,可能需要重新安装Go:

# 卸载当前Go版本
sudo rm -rf /usr/local/go

# 重新下载并安装Go
# 从 https://golang.org/dl/ 下载最新版本
tar -C /usr/local -xzf go1.21.0.darwin-amd64.tar.gz

方案5:检查VSCode的Go扩展配置 在VSCode的settings.json中添加:

{
    "go.toolsEnvVars": {
        "GOPATH": "/your/custom/gopath",
        "GO111MODULE": "on"
    }
}

最常见的原因是权限问题,建议首先尝试方案1和方案2。如果项目使用Go模块,确保go.mod文件正确配置:

module usersvc

go 1.21

require (
    // 你的依赖项
)

执行go mod tidy确保依赖项正确下载到本地缓存。

回到顶部