go - 如何通过 Dropbox(或类似平台)跨多个平台共享 GOPATH

标签 go

我在 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/

相关文章:

mysql - 尝试使用 docker 将 Golang 连接到 mssql 服务器时连接被拒绝

go - 在条件语句中声明但未使用的变量

eclipse - 我无法使用goclipse插件进行调试,windows环境

string - 无法检查使用 reader.ReadString 捕获的字符串上的 strings.HasSuffix

go - 将 interface{} 转换为 int

types - 如何确定 interface{} 值的 "real"类型?

unit-testing - 接收方方法相互调用时的单元测试

linux - 在 linux 系统上从 golang 中的 xls 文件中读取值

go - 从哪里获取数据库查询的上下文?

json - 无法将 json 解码为 protobuf 结构字段