30

GO標準ライブラリには、Goのインストールの下にソースファイルがあります。

C:\Go\src\pkg

ソースフォルダの下のパッケージは、次の.aファイルに対応しています。

C:\Go\pkg\windows_amd64

.aファイルとは何ですか?それらは何のために使用され、どのように生成されますか。私がそうするとき、それらが自動的に生成されることに気づきましたgo get libraryhostedingithub

4

4 に答える 4

29

それらはコンパイルされたパッケージです。を書くときに参照しているのはこれらのファイルですimport foo/bar。を参照し$GOROOT/pkg/$GOOS_$GOARCH/foo/bar.a、ではありません$GOROOT/src/foo/bar/*.go

これらのファイルには、コンパイルされたパッケージのバイナリコードと、デバッグシンボルおよびソース情報が含まれています。

于 2013-03-21T15:22:20.970 に答える
6

Go.aパッケージオブジェクトアーカイブファイルは、コマンドpackによって作成さgo tool packます

于 2013-03-21T15:31:28.290 に答える
5

ドキュメントによると:

DIRがGoパスにリストされているディレクトリである場合、ソースがDIR / src / foo/barにあるパッケージを「foo/bar」としてインポートし、コンパイルされたフォームを「DIR / pkg / GOOS_GOARCH / foo/bar」にインストールできます。 a "(または、gccgoの場合は" DIR / pkg / gccgo / foo / libbar.a ")。

つまり、コンパイル/インストールされたパッケージのようです。

于 2013-03-21T15:16:16.320 に答える
4

@peterSOが言ったように、「Go.aパッケージオブジェクトアーカイブファイルは、コマンドpackによって作成されgo tool packます

ただし、さらに明確にするために、これらのファイルをコピーして拡張子の名前を変更し、またはのコマンド.tar.gzなどのプログラムで通常の圧縮tarイメージとして開くか、実質的に同じものを使用できます。7ziptar -xvfLinuxgo tool pack

内部には、アーキテクチャのコンパイル済みコードとデバッグシンボルを含むコンパイル済みオブジェクトファイル「.o」と、パッケージメタデータを含むパッケージ定義ファイル(__。PKGDEF)が表示されます。

于 2016-11-18T05:47:44.233 に答える