2017-10-22 12 views
-2

は私がまたはGUIなしで実行できるプログラムでMac/Windowsではなく、linuxのコンパイルからgoライブラリを除外するにはどうすればよいですか?

輸入「github.com/dontpanic92/wxGo/wx」

を使用しています。

あなたが好きそれを実行する可能性がある、すなわち:

./program --gui真

または

./program --gui偽

私はGUI偽とLinux上で実行されていますwxGo/wxのすべてをコンパイルする必要はありません。

同じコードをgitにチェックインすると、MacやLinuxでコンパイルできます。

私はLinux上でコンパイルするとき、すなわち、今、私はあなたが特定のオペレーティング・システム上で構築から特定の移動ファイルを除外したい場合はwxGo/WX

+1

"whatever_linux.go"または "whatever_darwin.go"(またはwhatever_windows.go "またはビルドタグの形式のファイル名を使用してください。 – Volker

+1

参考:[Build Constraints](https://golang.org/pkg/go/)ビルド/#hdr-Build_Constraints) – JimB

答えて

1

への参照をコメントアウトする必要があり、アーキテクチャ、バージョンを移動するか、特定のタグの場合、これらはあなたのオプションをコンパイル時に指定されています

  1. あなたが唯一のLinux上で構築するためのファイルをしたい場合は、ファイル名に_linuxを追加し、例えばgui_linux.go。また、アーキテクチャを指定することもできます。 gui_windows_amd64.go

  2. Goファイルの上部に「//+build ...」というコメントを追加します。 // +build linux,386

詳細はhttps://golang.org/pkg/go/build/#hdr-Build_Constraintsを参照してください。

+0

同じmain.goファイルを使用することはできますか?main.goのようにGuiライブラリをインポートし、Guiフラグがオンなら1回コールします。 –

+0

いいえ、main_linux.goと1つの 'main_darwin.go'を使用する必要があります。ここではOS特有のものがありますコードが存在します。それぞれの変数に宣言されたブール変数をtrueとfalseの両方で宣言するだけで簡単に実行できます。 – gonutz

関連する問題