繁体   English   中英

Gopath环境错误

[英]Gopath environment errors

我正在使用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是绝对的道路,而不是相对的道路。

我在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
        },

您可以在C:/work/go中替换"${workspaceRoot}"
这样, Ctrl + Shift + B触发编译+安装( go install

调试器涉及:

  • 在%PATH%中有一个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
        }
    ]
}

在你的情况下,你可以用C:/work/go替换"${workspaceRoot}" (在GOPATHcwd )。

请注意,我特定GOPATH 以及 cwd(当前工作目录)我从工作区根目录打开我的文件(这样,断点被识别)。 来自main.go一个简单的F5确实成功运行(在Windows上!)

有了这个,我可以从一个没有GOROOTGOPATH设置的cmd Windows shell启动VSCode,它仍然有效。 (因为我的本地用户设置包含"go.goroot": "D:/prgs/go/latest"

如果要从tmux shell中的命令行启动VSCode,请尝试在tmux外部启动。 也尝试从启动器启动。 MacOS上的tmux和VSCode的变化使我最近对环境设置感到头疼,导致类似的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM