2016-08-31 5 views
2

Windows、OS XおよびUbuntu Linuxの3つのプラットフォームにまたがって開発しています。
Dropboxを使用して、3つのプラットフォーム間でコードを同期させます。
OS XとLinuxでコンパイルされたバイナリが同じ名前になるので、GOPATHのバイナリは常に互いに上書きされます。バイナリは常に.exeという拡張子でコンパイルされるため、Windowsではこの問題は発生しません。複数のプラットフォーム間でDropbox(または同様のもの)経由でGOPATHを共有する方法

他の誰もこの問題を経験していますか?その場合、どのように回避しましたか?

答えて

2

1-(ちょうどOS X用など)別のパスにGOBINを設定し、

go install

Command goを使用します。

GOBIN環境変数が設定されている場合、コマンドは にインストールされていますDIR/binの代わりにその名前を持つディレクトリ。 GOBINは絶対パスでなければなりません。


2 - また、あなたは、出力ファイルの名前を変更することがあります。

go build -o newname 

-oフラグ、単一のパッケージのコンパイル時にのみ許可:このように

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

を、force ビルドして、結果の実行可能ファイルまたはオブジェクトを指定された出力に書き込みます。 ファイル。


も参照してください:How do I use a Samba server location for GOPATH?

1

を解決は簡単です:だけで、あなたのコンピュータ間で$GOPATH/srcフォルダを共有し、(完全なパッケージオブジェクトとして$GOPATH$GOPATH/pkg)とバイナリを共有する必要は本当にありません$GOPATH/bin)は、他のプラットフォームでは実際に使用されておらず、簡単なコンパイルで再現可能です。

これにより、ストレージと帯域幅も削減されます。なんらかの理由で他のプラットフォーム用にコンパイルされたバイナリが必要な場合、goツールにはクロスコンパイルのための組み込みサポートが組み込まれています。 GOOS=windows go buildは、現在のフォルダに置かれた任意のOSのフォルダにあるパッケージのWindows実行可能バイナリを生成します(また、アーキテクチャをGOARCHで変更することもできます)。

もう1つの方法は、コードをソースコントロールの下に置くことです。 gitgithub.com)であり、これもまた履歴を保存する。 goツールでは、ソースコードをgitリポジトリから簡単に取得することもできます。 go get -u github.com/youruser/yourpackage

関連する問題