Дерево Go установки pkg
содержит несколько различных вещей:
- В дереве
pkg/tool
есть сам компилятор Go и другие связанные инструменты. Это двоичные файлы для определенных комбинаций os-arch . Это, конечно, совершенно необходимо для сборки go программного обеспечения. - Также будет одно или несколько деревьев os-arch с скомпилированными библиотеками для go stdlib , Для установки go, предназначенной для кросс-компиляции, это не будет той же комбинацией os-arch, что и в
pkg/tool
. - В
pkg/include
. Есть также некоторые заголовочные файлы C.
В дереве Go установки src
есть несколько различных вещей:
- В
src/cmd
есть источник для компилятора и инструментов Go , Этот источник не нужен для сборки go программного обеспечения. - В других местах
src
является источником для go stdlib. Это также необходимо для сборки программного обеспечения.
Библиотеки и исполняемые файлы в pkg
были созданы для указания c os-arch комбо (ов) из источников в src
.
Библиотеки не нужны для сборки программного обеспечения, так как go будет перестраиваться из источника. Исполняемые файлы необходимы, и система сборки go
будет использовать их.
Исходный код для компилятора в src
не требуется. Источник для go stdlib необходим , по крайней мере, для всех практических целей. go build
будет настаивать на поиске источника и откажется от сборки, если его нет, даже если доступна подходящая скомпилированная библиотека.
Была поддержка только двоичных пакетов от go 1.7 до go 1.12, но оно было отброшено.