3

当我尝试使用我的包执行我的 .go 脚本时,我newmath在 SublimeText2 中收到以下错误。

"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 在重新启动后或一段时间后自行重置:/

我的 Go 环境:

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 :

这已在 OS X 和 Ubuntu 上报告。问题似乎是shell变量没有传递给超出GoSublime的GUI(在这种情况下为ST2)。

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

在您的 Sublime Text 2 用户设置中,您可以尝试设置您的环境变量(我说这不确定 GoSublime 或 ST2 是否专门读取“env”条目,所以这可能会或可能不会起作用,如果它不你可能想要安装和使用 GoSublime,这是非常棒的 IMO):

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

高温高压

于 2012-12-12T02:02:30.297 回答