2017-06-13 5 views
2

Ich verwende Visual Studio-Code, um etwas Go-Code zu schreiben. Alles funktionierte gestern gut, aber jetzt kann ich den Debugger nicht ausführen oder VS-Code einbauen.Gopath-Umgebungsfehler

Ich bin auf Windows 10, und ich verwende PowerShell als mein Terminal der Wahl.

bekomme ich folgende Fehlermeldung:

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 

Dies ist ein VS-CODE spezifische Fehler, weil ich unterwegs Quelldateien mit go build durch das Terminal wie gewohnt aufbauen kann.

Hier sind die Ergebnisse von 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 

Wie Sie sehen können, mein GOPATH ist ein absoluter Pfad, nicht relativ.

+2

Öffnen Sie Ihre VS-Code-Einstellungen, suchen Sie in Arbeitsplatzeinstellungen und Benutzereinstellungen nach 'go.gopath'. Was ist der Wert, den du hast? – jeevatkm

+0

'" go.gopath ": null' Ich habe versucht, es in' "C:/work/go" zu ändern, aber das tut es auch nicht. –

+0

Okay, das ist der Standardwert im Arbeitsbereich. Lassen Sie uns go.gopath in den Benutzereinstellungen wie '" go.gopath "einstellen:" C:/work/go "'. – jeevatkm

Antwort

1

Ich verwende VSCode 1.13.1 unter Windows 10, und ich starte oder debugge ohne irgendein Problem.

Das Starten beinhaltet in Ihrem Arbeitsbereich eine ${workspaceroot}/.vscode/tasks.json Datei.
des GOPATH Wert Um sicher zu gehen, Mine umfasst:

{ 
    // 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 
     }, 

Sie "${workspaceRoot}" von C:/work/go in Ihrem Fall ersetzen können.
diese Weise ein Ctrl + Umschalttaste + B löst eine Compilation + Installation (go install)

und der Debugger beinhaltet:

  • ein dlv.exe in dem% PATH% mit
  • a ${workspaceroot}/.vscode/launch.json Datei
Hier

ist mein

{ 
    "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 
     } 
    ] 
} 

Wieder Sie "${workspaceRoot}" von C:/work/go in Ihrem Fall ersetzen kann (sowohl in GOPATH und cwd).

Bitte beachten, dass ich GOPATH specificy sowie cwd (aktuelles Arbeitsverzeichnis) ich meine Datei relativ aus dem Arbeitsbereich root öffnen (diese Weise werden die Haltepunkte erkannt). Ein einfaches F5 von main.go läuft delve erfolgreich (unter Windows!)

Damit ich VSCode von einem cmd Windows-Shell starten können, die keine GOROOT oder GOPATH gesetzt hat, und es funktioniert immer noch. (da meine lokalen Benutzereinstellungen "go.goroot": "D:/prgs/go/latest" enthalten)

+0

Das hat es geschafft! Danke für Ihre Hilfe. –

+0

@EfronLicht Gut gemacht! Ich bin kürzlich zu VSCode for Go gewechselt und habe bisher überraschend gute Erfahrungen damit gemacht. – VonC

0

Wenn Sie VSCode über die Befehlszeile in einer tmux-Shell starten, versuchen Sie, außerhalb von tmux zu starten. Versuchen Sie auch, über den Launcher zu starten. Änderungen in tmux und VSCode auf MacOS haben mir in letzter Zeit Probleme mit Umgebungseinstellungen bereitet, was zu ähnlichen Problemen geführt hat.

+0

Ich weiß nicht, was tmux ist, also kann es nicht sein, sorry. Danke für deinen Rat! –