我在3種不同的平臺上開發,Windows,OS X和Ubuntu Linux。
我使用Dropbox在所有3個平臺之間同步我的代碼。
我遇到的問題是在OS X和Linux上編譯的二進制文件名稱相同,因此我的GOPATH
中的二進制文件總是互相覆蓋。我沒有Windows的這個問題,因爲二進制文件總是以.exe
的擴展名編譯。如何通過Dropbox(或類似平臺)跨多個平臺共享您的GOPATH
有沒有其他人經歷過這個問題,如果是的話,你是如何解決它的?
我在3種不同的平臺上開發,Windows,OS X和Ubuntu Linux。
我使用Dropbox在所有3個平臺之間同步我的代碼。
我遇到的問題是在OS X和Linux上編譯的二進制文件名稱相同,因此我的GOPATH
中的二進制文件總是互相覆蓋。我沒有Windows的這個問題,因爲二進制文件總是以.exe
的擴展名編譯。如何通過Dropbox(或類似平臺)跨多個平臺共享您的GOPATH
有沒有其他人經歷過這個問題,如果是的話,你是如何解決它的?
1-設置GOBIN
分離路徑(只是例如用於OS X
),並使用
go install
如果GOBIN環境變量被設置,命令被安裝到 目錄而不是DIR/bin。戈賓必須是絕對路徑。
2-您也可以重命名輸出文件:
go build [-o output] [-i] [build flags] [packages]
像這樣:
go build -o newname
-o標誌,編譯單個封裝時只允許,強制 構建以將生成的可執行文件或對象寫入指定的輸出 文件。
解決方法很簡單:只共享在您的計算機上的$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
。