Go:无法在符号链接中打包

Go: cannot package in symlink

我有一个一次性的项目。在这个项目中,例如我有一个 lib_project 是指向另一个目录的符号链接,例如:github_project

拉取源代码到本地后,我更新另一个git个子模块(github_project是一个子模块)。然后我去这里编译项目。

之后,我转到我的主项目并尝试 运行 命令 go。我遇到异常:

package github.com/main_project/test.go: cannot find package "github.com/main_project/lib_project/some_random_file.go" in any of:

        /usr/local/Cellar/go/1.7.1/libexec/src/github.com/main_project/lib_project/some_random_file.go (from $GOROOT)

        /Users/my_user/Documents/go/src/github.com/main_project/lib_project/some_random_file.go (from $GOPATH)

我测试了一下,目录github.com/main_project/lib_project/some_random_file.go已经存在了。我可以 cd 到这个并打开文件。看起来 Go 无法识别符号链接文件夹(在本例中是 lib_project

Go 工具故意不遵循符号链接。确保你的 GOPATH 中没有任何内容,并且始终使用相对于 $GOPATH/src/ 的完整导入路径安装包,并使用相对于 vendor/ 目录的 vendored 包。