2016-08-31 56 views
2

我在3種不同的平臺上開發,Windows,OS X和Ubuntu Linux。
我使用Dropbox在所有3個平臺之間同步我的代碼。
我遇到的問題是在OS X和Linux上編譯的二進制文件名稱相同,因此我的GOPATH中的二進制文件總是互相覆蓋。我沒有Windows的這個問題,因爲二進制文件總是以.exe的擴展名編譯。如何通過Dropbox(或類似平臺)跨多個平臺共享您的GOPATH

有沒有其他人經歷過這個問題,如果是的話,你是如何解決它的?

回答

2

1-設置GOBIN分離路徑(只是例如用於OS X),並使用

go install

Command go

如果GOBIN環境變量被設置,命令被安裝到 目錄而不是DIR/bin。戈賓必須是絕對路徑。


2-您也可以重命名輸出文件:

go build [-o output] [-i] [build flags] [packages] 

像這樣:

go build -o newname 

-o標誌,編譯單個封裝時只允許,強制 構建以將生成的可執行文件或對象寫入指定的輸出 文件。


另見:How do I use a Samba server location for GOPATH?

1

解決方法很簡單:只共享在您的計算機上的$GOPATH/src文件夾,實在沒必要​​分享完整的$GOPATH作爲包裝對象($GOPATH/pkg)和二進制文件( $GOPATH/bin)在其他平臺上沒有真正的用處,並且它們可以通過簡單的編譯來重現。

這也會降低存儲和帶寬。如果由於某種原因,您仍然需要爲其他平臺編譯的二進制文件,go工具內置了對交叉編譯的支持,例如, GOOS=windows go build將簡單地生成您在任何操作系統中放置在當前文件夾中的文件夾的Windows可執行二進制文件(您也可以使用GOARCH更改體系結構)。

另一種選擇是將您的代碼置於源代碼管理下,例如gitgithub.com),這也保留了歷史。 go工具也支持輕鬆從git倉庫獲取源代碼,例如go get -u github.com/youruser/yourpackage