2016-09-16 4 views
1

それは静的にリンクされた実行可能ファイルを生成するように私のgolangパッケージをコンパイルするには、私が言わなければならない:goのために、どのようにデフォルトのnetgoをデフォルトにしますか?

go install -tags netgo 

をさらに私は今、gccをすることなく、システム上でそれを実現する、私は次の条件を満たす必要があります。

go get -tags netgo github.com/mypackage/... 
go test -tags netgo ./... 

あなたの場合いつもこれをタイプしているので、それほどいいことはありません。私はエイリアスを設定しているので、タイプを少なくすることができますが、デフォルトの何らかのものとして--etags netgoを設定するための "より良い"または "適切な"方法がありますか?理想的には私のパッケージ自体の一部として、私のパッケージで作業しようとしている見知らぬ人が、-tags netgoを見逃すことはありません。

編集:

go install -tags netgo -ldflags '-linkmode external -extldflags -static -w' 

つまり:私はまた、可能性は言いたいです。静的にコンパイルできるCコードへのリンク。したがって、GCCを使用しないマシンでは、静的にリンクされた実行可能ファイルを生成するよりも、それほど重要ではありません。私は、いつも-tags netgoを言ってせずに後者をする方法があるのだろうかと思います。

答えて

3

CGO_ENABLED=0を設定すると、ネットパッケージがホストリゾルバにリンクされないようにすることができます。

+0

ありがとう、それは1つの方法ですが、私は静的にリンクされている問題がないCコードにリンクする可能性を望んでいるはずです。その場合gccを必要とすることはOKですが、私は静的にコンパイルされた実行可能ファイルを作成するためにデフォルトにしたいと考えています。 – sbs

+0

@sbs:ビルドしたいタグを一覧表示する必要があります。 Makefileまたはビルドスクリプトに入れます。顕著な複雑性を持つほとんどのプロジェクトは、単純な 'go install'以外のビルド要件に終わります。 – JimB

+0

誰かが正しい 'CGO_ENABLED = 0'の答えを編集できますか? – y0ssar1an

関連する問題