doujiaoang69440
doujiaoang69440
2012-12-11 23:40

Golang-在SublimeText2中找不到包

已采纳

when i try to execute my .go script with my package newmath i get following error in SublimeText2.

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

Thats my build-system in SublimeText2

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

but when i execute my script in the terminal the go-compiler can find the package and it is succesfully executed. And i have noticed that the GOPATH is reseted after reboot or after a while by itself :/

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"

I think it is a path/environment problem of SublimeText2 but i dont know.

Thank you.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • duanqin4238 duanqin4238 9年前

    It seems the build system does not share the GoSublime settings env, nor your own shell env. So you have to set it up specifically:

    Build systems

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

    You could also switch your GOPATH setting to use ${project} instead of that explicit GOPATH, if you work in a way that your Sublime project is your GOPATH.

    点赞 评论 复制链接分享
  • doujie4050 doujie4050 9年前

    Possibly related to this GoSublime issue, even though you don't seem to use GoSublime :

    This has been reported on OS X and Ubuntu. The problem appears to be that the shell variables are not passed passed to GUIs(ST2 in this case) which is beyond GoSublime.

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

    In your Sublime Text 2 User Settings, you may try to set your environment variables (I say this not knowing for sure if the "env" entry is specifically read by GoSublime or ST2, so this may or may not work, if it doesn't you may want to install and use GoSublime, which is pretty awesome IMO):

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

    HTH

    点赞 评论 复制链接分享