2017-11-18 4 views
0

実行可能ファイルがどこにあるのbinディレクトリが既にある場合、pkgディレクトリの必要性は何ですか?説明してください。Goでpkgディレクトリを使用するにはどうすればよいですか?

+2

"インストールされたパッケージオブジェクトを保持しています" ...あなたの質問は調査しませんでしたか? –

+3

https://golang.org/doc/code.html#Workspaces – mkopriva

+0

私はpkgの詳細を調べましたが、パッケージオブジェクトのコンセプトを把握できませんでした – dvsakgec

答えて

4

ディレクトリには、srcディレクトリからコンパイルされたGoパッケージオブジェクトが含まれています。binディレクトリに完全なGo実行可能ファイルバイナリを作成するために、リンク時にソースコードパッケージを使用します。

パッケージを一度コンパイルできますが、そのオブジェクトを多数の実行可能ファイルにリンクすることができます。たとえば、fmtパッケージは、ほぼすべてのGoプログラムに表示されます。これは一度コンパイルされましたが、何度もリンクされ、大きな節約となりました。

+0

これは、main以外のパッケージがそこに行かなければならないことを意味します。 – dvsakgec

+1

@dvsakgec:はい。実行可能なコマンドは唯一の 'main'パッケージを持っています。 'pkg'ディレクトリからインポートされた他のパッケージとリンクして、' bin'ディレクトリにexectableを作成します。 'main'以外のパッケージは、オブジェクト形式にコンパイルされ、' pkg'ディレクトリに格納されます。このディレクトリは、インポート時にリンク時に検索されます。 – peterSO

関連する問題