GO標準ライブラリでは、ソースファイルが私の囲碁インストールの下にあります。Goの.aファイルとは何ですか?
C:\Go\src\pkg
パッケージはソースフォルダの下ここにファイルを.Aに対応:
C:\Go\pkg\windows_amd64
.Aは何ですかファイル?彼らは何のために使用され、どのように生成されます。私が気付いたのは、私がgo get libraryhostedingithub
のときに自動的に生成されるということです。 docsによると
GO標準ライブラリでは、ソースファイルが私の囲碁インストールの下にあります。Goの.aファイルとは何ですか?
C:\Go\src\pkg
パッケージはソースフォルダの下ここにファイルを.Aに対応:
C:\Go\pkg\windows_amd64
.Aは何ですかファイル?彼らは何のために使用され、どのように生成されます。私が気付いたのは、私がgo get libraryhostedingithub
のときに自動的に生成されるということです。 docsによると
コンパイル済みのパッケージです。 import foo/bar
を書くときに参照しているファイルです。それは$GOROOT/pkg/$GOOS_$GOARCH/foo/bar.a
を指し、$GOROOT/src/foo/bar/*.go
を指しません。
これらのファイルには、デバッグシンボルとソース情報とともに、コンパイルされたパッケージバイナリコードが含まれています。
:
DIRが行くパスに記載されているディレクトリである場合は、DIR/SRC/fooの/バーにソースとパッケージは「FOO /バー」としてインポートし、そのを持ってすることができます"DIR/pkg/GOOS_GOARCH/foo/bar.a"にインストールされたコンパイル済みのフォーム(または、gccgoの場合は "DIR/pkg/gccgo/foo/libbar.a")。
コンパイルされた/インストールされたパッケージのようです。
go .a
パッケージオブジェクトのアーカイブファイルは、go tool pack
コマンド:Command packによって作成されます。
@.a
パッケージオブジェクトアーカイブファイルは、go tool pack
コマンド:Command packによって作成されました。 "
しかし、さらに明確にするために、あなたはこれらのファイルをコピーして.tar.gz
に拡張子の名前を変更し、Linux
で7zip
またはtar -xvf
コマンドのようなプログラムでは、通常の圧縮されたtarイメージとしてそれらを開くか、go tool pack
を使用することができますすることができます事実上同じです。
コンパイル済みオブジェクトファイル ".o"には、コンパイルされたコードとデバッグシンボルが含まれています。パッケージ定義ファイル(__。PKGDEF)にはパッケージメタデータが含まれています。
純粋にコンパイルされたパッケージ形式でライブラリを配布することは可能ですか?私はどこかから読んだことを覚えています.Goでライブラリをソースファイルで配布することしかできません。 – Dante
原則として、そうすることができます。しかし、特定のプラットフォーム用にコンパイルされていることに注意してください。したがって、あるプラットフォーム用のパッケージを別のプラットフォームを対象としたビルドサイクルに正常にインポートすることはできません。結局、ソース配布は面倒ではありません。 – jimt
@ JohnNevermore現在、ソースなしのビルドは可能ではありますが、サポートされていません。必要な情報はすべてライブラリファイル(.a)に含まれています。 – fuz