我正在使用Visual Studio代码编写一些代码。昨天一切正常,但现在我无法运行调试器或构建VS-Code。
我在Windows 10上,我使用Powershell作为我的首选终端。
我收到以下错误:
go: GOPATH entry is relative; must be absolute path: "/Users/efronlicht/go".
For more details see: 'go help gopath'
exit status 2
Process exiting with code: 1
这是一个特定于VS-CODE的错误,因为我可以像往常一样通过终端构建带go build
的源文件。
以下是go env
的结果:
set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\work\go
set GORACE=
set GOROOT=C:\Go
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0
set CXX=g++
set CGO_ENABLED=1
set PKG_CONFIG=pkg-config
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
正如你所看到的,我的GOPATH是绝对的道路,而不是相对的道路。
答案 0 :(得分:2)
我在Windows 10上使用VSCode 1.13.1,我没有任何问题地启动或调试。
在您的工作区中启动${workspaceroot}/.vscode/tasks.json
文件
为了确保GOPATH价值,我的包括:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "0.1.0",
"command": "build",
"isShellCommand": true,
"showOutput": "always",
"tasks": [
{
"options": {
"env": {
"GOROOT": "D:/prgs/go/latest",
"GOPATH": "${workspaceRoot}"
}
},
"echoCommand": false,
"taskName": "install",
"isBuildCommand": true
},
在您的情况下,您可以将"${workspaceRoot}"
替换为C:/work/go
这样, Ctrl + Shift + B 会触发编译+安装(go install
)
调试器涉及:
dlv.exe
${workspaceroot}/.vscode/launch.json
文件这是我的
{
"version": "0.2.0",
"configurations": [
{
"stopOnEntry": false,
"cwd": "${workspaceRoot}",
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "debug",
"remotePath": "",
"port": 2345,
"host": "127.0.0.1",
"program": "${fileDirname}",
"env": {
"GOPATH": "${workspaceRoot}"
},
"args": [],
"showLog": true
}
]
}
您可以在"${workspaceRoot}"
和C:/work/go
中同时将GOPATH
替换为cwd
。
请注意,我具体说明了GOPATH 以及 cwd(当前工作目录)
我从工作区根目录打开我的文件(这样就可以识别断点)。来自main.go
的简单 F5 确实成功运行(在Windows上!)
有了这个,我可以从没有cmd
或GOROOT
设置的GOPATH
Windows shell启动VSCode,它仍然有效。 (因为我的本地用户设置包括"go.goroot": "D:/prgs/go/latest"
)
答案 1 :(得分:0)
如果要从tmux shell中的命令行启动VSCode,请尝试在tmux外部启动。也尝试从启动器启动。 MacOS上的tmux和VSCode的变化使我最近对环境设置感到头疼,导致类似的问题。