3

パッケージを使用して.goスクリプトを実行しようとすると、SublimeText2でnewmath次のエラーが発生します。

"test.go:5:2: import "newmath": cannot find package"

それがSublimeText2の私のビルドシステムです

{
"cmd": ["go","run", "${file}"],
"working_dir": "${file_path}",
"selector": "source.go, source.g"
}

しかし、ターミナルでスクリプトを実行すると、go-compilerがパッケージを見つけて、正常に実行されます。そして、再起動後またはしばらくすると、GOPATHがリセットされることに気づきました:/

My Go env:

GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/daggi/gocode/"
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
CGO_ENABLED="1"

SublimeText2のパス/環境問題だと思いますが、わかりません。

ありがとうございました。

4

2 に答える 2

2

ビルドシステムはGoSublime設定環境も独自のシェル環境も共有していないようです。したがって、具体的に設定する必要があります。

システムを構築する

{
    "cmd": ["go","run", "${file}"],
    "working_dir": "${file_path}",
    "selector": "source.go, source.g",
    "path": "/usr/lib/go/bin:$PATH",
    "env": {
        "GOPATH": "$HOME/gocode/",
        "GOROOT": "/usr/lib/go",
        "PATH": "/usr/lib/go/bin:$PATH"
    }
}

SublimeプロジェクトがGOPATHであるように作業している場合は、明示的なGOPATHの代わりにGOPATH使用するように設定を切り替えることもできます。${project}

于 2012-12-12T02:50:47.073 に答える
1

GoSublimeを使用していないようですが、おそらくこのGoSublimeの問題に関連しています。

これはOSXとUbuntuで報告されています。問題は、GoSublimeを超えたGUI(この場合はST2)にシェル変数が渡されないことであるように見えます。

https://github.com/DisposaBoy/GoSublime/issues/71

Sublime Text 2のユーザー設定で、環境変数を設定しようとする場合があります(これは、「env」エントリがGoSublimeまたはST2によって具体的に読み取られるかどうかわからないため、機能しない場合は機能する場合と機能しない場合があります。 GoSublimeをインストールして使用することをお勧めします。これは非常に素晴らしいIMOです):

  "env": {
    "GOROOT": "/usr/lib/go",
    "GOPATH": "/home/daggi/gocode"
  }

HTH

于 2012-12-12T02:02:30.297 に答える