2017-06-13 79 views
2

我正在使用Visual Studio代碼編寫一些go代碼。昨天一切正常,但現在我無法運行調試器或構建VS代碼。Gopath環境錯誤

我在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是一個絕對路徑,而不是相對的。

+2

打開您的VS代碼設置,在工作區設置和用戶設置中查找go.gopath。你有什麼價值? – jeevatkm

+0

'「go.gopath」:null' 我試着將它改爲'「C:/ work/go」,但那也沒有做到。 –

+0

好的,這是工作區中的默認值。讓我們嘗試在用戶設置中設置go.gopath,如「go.gopath」:「C:/ work/go」。 – jeevatkm

回答

1

我在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鍵 + + 觸發彙編+安裝(go install

並且調試器包括:

  • 具有在%PATH%一dlv.exe
  • a ${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)。

注意,我specificy GOPATH 以及 CWD(當前工作目錄) 我打開從工作區根我的文件相對(這樣一來,這些斷點識別)。一個簡單的F5main.go不運行鑽研成功(在Windows!)

就這樣,我可以從一個cmd Windows外殼不具有GOROOTGOPATH集推出VSCode,它仍然有效。 (因爲我的本地用戶設置包括"go.goroot": "D:/prgs/go/latest"

+0

這樣做了!感謝您的幫助。 –

+0

@EfronLicht幹得好!我最近轉而使用VSCode for Go,到目前爲止我對它有着驚人的良好體驗。 – VonC

0

如果要從命令行在tmux shell中啓動VSCode,請嘗試在tmux之外啓動。也嘗試從啓動器啓動。 MacOS上tmux和VSCode的變化最近給我帶來了環境設置問題,導致了類似的問題。

+0

我不知道什麼是tmux,所以不能這樣,對不起。感謝您的建議! –