我在 3 个不同的平台上进行开发:Windows、OS X 和 Ubuntu Linux。
我使用 Dropbox 在所有 3 个平台之间同步我的代码。
我遇到的问题是 OS X 和 Linux 上编译的二进制文件具有相同的名称,因此我的 GOPATH 中的二进制文件总是相互覆盖。我在 Windows 上没有这个问题,因为二进制文件总是使用 .exe
扩展名进行编译。
其他人是否遇到过这个问题?如果有,您是如何解决这个问题的?
最佳答案
解决办法很简单:只分享$GOPATH/src
跨计算机的文件夹,确实没有必要共享完整的 $GOPATH
因为编译到一个平台的包对象 ( $GOPATH/pkg
) 和二进制文件 ( $GOPATH/bin
) 在其他平台上没有实际用途,并且可以通过简单的编译来重现它们。
这也会减少存储和带宽。如果由于某种原因您仍然需要其他平台的已编译二进制文件,则 go
工具内置对交叉编译的支持,例如GOOS=windows go build
只会为您生成您所在的任何操作系统中的包的 Windows 可执行二进制文件,并将其放置在当前文件夹中(您还可以使用 GOARCH
更改体系结构)。
另一种选择是将您的代码置于源代码管理之下,例如git ( github.com ),它也保留了历史。 go
该工具还支持轻松地从 git 存储库获取源代码,例如go get -u github.com/youruser/yourpackage
.
关于go - 如何通过 Dropbox(或类似平台)跨多个平台共享 GOPATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39242970/