Оригинальный автор, публичный аккаунт [программист чтение], прошу обратить внимание на паблик аккаунт, просьба указывать источник перепечатываемой статьи.
Независимо от того, используете ли вы Windows, Linux или Mac OS для разработки приложений Go, после установки инструментов разработки языка установки Go вы должны настроить переменные среды, необходимые для разработки языка Go, прежде чем завершить первоначальную настройку среды разработки Go.
Но некоторые новички могут не понимать широко используемый язык Go.环境变量(Environment variables)
О роли и способе установки переменных окружения поговорим сегодня.
Примечание. После завершения установки установочного пакета операционной системы Windows (с расширением .msi), предоставленного Go, автоматически настраиваются несколько часто используемых переменных среды.
Общие переменные среды
В языке Go можно задать множество переменных окружения.Каждая переменная окружения имеет свою функцию, но многие из них могут не использоваться.Как правило, наиболее важными из них являются следующие:
$ go env //打印Go所有默认环境变量
$ go env GOPATH //打印某个环境变量的值
GOROOT
переменная средыGOROOT
Указывает каталог установки языка Go.
существуетWindows
середина,GOROOT
Значение по умолчаниюC:/go
, пока вMac OS
илиLinux
серединаGOROOT
Значение по умолчаниюusr/loca/go
, если Go установлен в другом каталоге, вам необходимо изменить значение GOROOT на соответствующий каталог.
Кроме того,GOROOT/bin
содержит набор инструментов, который нам предоставляет Go, поэтому мы должныGOROOT/bin
Настроен в переменной окружения PATH, чтобы мы могли глобально использовать цепочку инструментов Go.
Демонстрация GOROOT для настройки Linux
export GOROOT=~/go
export PATH=$PATH:$GOROOT/bin
GOPATH
Уведомление,
GOPATH
Значение нельзя сравнивать сGOROOT
такой же.
переменная средыGOPATH
Используется для указания нашей рабочей области разработки (рабочей области), которая предназначена для хранения исходного кода, тестовых файлов, статических файлов библиотеки и исполняемых файлов.
существует类Unix
(Mac OS или Linux) операционная системаGOPATH
Значение по умолчанию — $home/go. В Windows значение GOPATH по умолчанию — %USERPROFILE%\go (например, для пользователя Admin это значение C:\Users\Admin\go).
Конечно, мы можем изменить рабочую область, изменив GOPATH, например установив рабочийopt/go
Способ следующий:
Демонстрация установки GOPATH для Linux
export GOPATH=/opt/go
Кроме того, вы можете установить несколько рабочих областей в GOPATH, например:
export GOPATH=/opt/go;$home/go
подкаталоги GOPATH
Приведенный выше код означает, что мы указываем две рабочие области, но когда мы используемgo get
Когда команды используются для получения удаленных библиотек, они обычно устанавливаются в первой рабочей области.
Согласно спецификации разработки Go, каждое задание в каталоге GOPATH обычно делится на три подкаталога:src
,pkg
,bin
, поэтому мы видим каждое рабочее пространство следующим образом:
bin/
hello # 可执行文件
outyet # 可执行文件
src/
github.com/golang/example/
.git/
hello/
hello.go # 命令行代码
outyet/
main.go # 命令行代码
main_test.go # 测试代码
stringutil/
reverse.go # 库文件
reverse_test.go # 库文件
golang.org/x/image/
.git/
bmp/
reader.go # 库文件
writer.go # 库文件
src
Каталог содержит файлы исходного кода, которые мы разработали, а соответствующий каталог под ним называется包
,pkg
Поместите статические файлы скомпилированной библиотеки,bin
Это исполняемый файл фона компиляции исходного кода.
GOBIN
переменная средыGOBIN
Указывает каталог установки двоичной команды после компиляции нашей программы разработки.
когда мы используемgo install
Когда команда компилирует и упаковывает приложение, команда упаковывает скомпилированную двоичную программу в каталог GOBIN.Как правило, мы устанавливаем GOBIN вGOPATH/bin
содержание.
Демонстрация установки GOBIN для Linux
export GOBIN=$GOPATH/bin
В приведенном выше коде мы используем команду экспорта для установки переменных среды, поэтому настройки могут быть действительны только в текущей оболочке.Если вы хотите, чтобы они были действительными все время, например, в Linux, вы должны добавить переменные среды в/etc/profile
среди прочих документов.
перекрестная компиляция
Что такое кросс-компиляция? Так называемая кросс-компиляция относится к генерации кода, который может работать на другой платформе на одной платформе, Например, мы можем создавать двоичные программы, которые могут работать в 64-битной операционной системе Linux в среде разработки 32-битной операционной системы Windows. . . .
Для кросс-компиляции на других языках программирования может потребоваться помощь сторонних инструментов, но кросс-компиляция на языке Go очень проста, самое простое — установить две переменные среды GOOS и GOARCH.
ГСНО и ГОАРЧ
Значением по умолчанию GOOS является наша текущая операционная система, если Windows, Linux, обратите внимание, что значение для операции Mac OS — darwin. GOARCH представляет архитектуру ЦП, такую как 386, amd64, arm и т. д.
Получите ценность GOOS и GOARCH
мы можем использоватьgo env
Команда получает значение текущих Goos и Goarch.
$ go env GOOS GOARCH
Диапазон значений GOOS и GOARCH
Значения GOOS и GOARCH отображаются парами и могут быть только соответствующими значениями в следующем списке.
$GOOS $GOARCH
android arm
darwin 386
darwin amd64
darwin arm
darwin arm64
dragonfly amd64
freebsd 386
freebsd amd64
freebsd arm
linux 386
linux amd64
linux arm
linux arm64
linux ppc64
linux ppc64le
linux mips
linux mipsle
linux mips64
linux mips64le
linux s390x
netbsd 386
netbsd amd64
netbsd arm
openbsd 386
openbsd amd64
openbsd arm
plan9 386
plan9 amd64
solaris amd64
windows 386
windows amd64
Пример
Скомпилируйте целевую программу для работы в 64-битной операционной системе Linux.
$ GOOS=linux GOARCH=amd64 go build main.go
Скомпилируйте целевую программу на Android с архитектурой arm.
$ GOOS=android GOARCH=arm GOARM=7 go build main.go
Список переменных среды
Хотя обычно мы настраиваем только несколько переменных среды, язык Go на самом деле предоставляет множество переменных среды, что позволяет нам свободно настраивать разработку и поведение компилятора.
Ниже приведен список всех переменных среды, предоставляемых Go, которые в целом можно разделить на следующие категории.Об этом достаточно знать, потому что некоторые переменные среды мы можем никогда не использовать.
через переменные окружения
GCCGO
GOARCH
GOBIN
GOCACHE
GOFLAGS
GOOS
GOPATH
GOPROXY
GORACE
GOROOT
GOTMPDIR
Переменные среды, используемые с cgo
CC
CGO_ENABLED
CGO_CFLAGS
CGO_CFLAGS_ALLOW
CGO_CFLAGS_DISALLOW
CGO_CPPFLAGS, CGO_CPPFLAGS_ALLOW, CGO_CPPFLAGS_DISALLOW
CGO_CXXFLAGS, CGO_CXXFLAGS_ALLOW, CGO_CXXFLAGS_DISALLOW
CGO_FFLAGS, CGO_FFLAGS_ALLOW, CGO_FFLAGS_DISALLOW
CGO_LDFLAGS, CGO_LDFLAGS_ALLOW, CGO_LDFLAGS_DISALLOW
CXX
PKG_CONFIG
AR
Переменные среды, связанные с архитектурой системы
GOARM
GO386
GOMIPS
GOMIPS64
Выделенные переменные среды
GCCGOTOOLDIR
GOROOT_FINAL
GO_EXTLINK_ENABLED
GIT_ALLOW_PROTOCOL
другие переменные среды
GOEXE
GOHOSTARCH
GOHOSTOS
GOMOD
GOTOOLDIR
резюме
Установка переменных среды может повлиять на процесс и результаты нашей разработки и компиляции проектов, поэтому это необходимо понимать.
Ваше внимание — самое большое поощрение на моем писательском пути!