相关疑难解决方法(0)

无法在 Mac M1 上使用 VSCode 运行调试 Go

我发现一个遇到同样问题的主题(Can't debug Golang in vscode apple m1)但我不确定它是否是一个旧的解决方案,因为我使用的是 Go 版本

go1.17.1 darwin/arm64 
Run Code Online (Sandbox Code Playgroud)

dlv version 1.7.2 
Run Code Online (Sandbox Code Playgroud)

VSCode version 1.60.2 (arm64)
Run Code Online (Sandbox Code Playgroud)

Mac M1 BigSur (11.6)
Run Code Online (Sandbox Code Playgroud)

当我运行 debug ( fn+f5) 时,调试控制台显示:

Starting: /Users/username/go/bin/dlv-dap dap --check-go-version=false --listen=127.0.0.1:53115 --log-dest=3 from /Users/username/go/src/project-name
DAP server listening at: 127.0.0.1:53115
Run Code Online (Sandbox Code Playgroud)

并且出现弹出错误:

Failed to launch: could not launch process: can not run under Rosetta, check that the installed build of Go is right for your CPU architecture
Run Code Online (Sandbox Code Playgroud)

我尝试使用 dlv 1.6.1 将 go 版本降级到 1.16.8 arm64 …

go visual-studio-code vscode-debugger apple-m1

23
推荐指数
3
解决办法
3万
查看次数

vscode 没有检测到 golang 错误

我的 vscode 没有检测到 golang 中的错误。

例子:

package somepackage

import "fmt"

func f(name string) string {
    name = 1
    return name
}
Run Code Online (Sandbox Code Playgroud)

这应该会引发类型错误,但事实并非如此。我从来没有收到任何错误。

我的settings.json包含

"go.gopath": "some/path", 
"go.vetOnSave": "package",
"go.lintOnSave": "package",
"go.testOnSave": true,
"go.buildOnSave": "package",
"go.coverOnSave": true 
Run Code Online (Sandbox Code Playgroud)

我能够跑了go: install/update Tools。所有工具均已成功安装。

我还可以在 vscode 中运行调试 .go 文件。

go visual-studio-code

2
推荐指数
1
解决办法
6625
查看次数

无法使用代码构建:“在此块中重新声明”

当我尝试构建 ( go build hello.go) 以下代码时:

// ~/go/src/myproj/hello.go
package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

# runtime/internal/atomic
/usr/local/go/src/runtime/internal/atomic/atomic_amd64x.go:13:6: Load redeclared in this block
    previous declaration at /usr/local/go/src/runtime/internal/atomic/atomic_amd64.go:16:24
/usr/local/go/src/runtime/internal/atomic/atomic_amd64x.go:19:6: Loadp redeclared in this block
    previous declaration at /usr/local/go/src/runtime/internal/atomic/atomic_amd64.go:22:32
/usr/local/go/src/runtime/internal/atomic/atomic_amd64x.go:25:6: Load64 redeclared in this block
    previous declaration at /usr/local/go/src/runtime/internal/atomic/atomic_amd64.go:28:26
/usr/local/go/src/runtime/internal/atomic/atomic_amd64x.go:31:6: LoadAcq redeclared in this block
    previous declaration at /usr/local/go/src/runtime/internal/atomic/atomic_amd64.go:34:27
/usr/local/go/src/runtime/internal/atomic/atomic_amd64x.go:36:6: Xadd redeclared in this block
    previous declaration at /usr/local/go/src/runtime/internal/atomic/atomic_amd64.go:39:37
/usr/local/go/src/runtime/internal/atomic/atomic_amd64x.go:39:6: Xadd64 redeclared in this block
    previous declaration …
Run Code Online (Sandbox Code Playgroud)

compilation go

1
推荐指数
1
解决办法
2271
查看次数

删除了 golang 但 go 命令仍然有效?

我正在运行 Mac OSX Yosemite。

我正在尝试从 golang 1.4 更新到 golang 1.6。我卸载了 golang 但我注意到我仍然可以运行 go 命令go version = go1.4.2 darwin/amd64。为什么会这样呢?

IMO 的指示不是很清楚。他们说

  1. 删除现有的 Go 安装 这通常是 /usr/local/go (完成) 删除 etc/paths.d/go
  2. 我通过运行编辑了 bashgo version go1.4.2 darwin/amd64

macos terminal go

0
推荐指数
1
解决办法
9473
查看次数