Сведения о настройке переменной среды Golang

Go

Оригинальный автор, публичный аккаунт [программист чтение], прошу обратить внимание на паблик аккаунт, просьба указывать источник перепечатываемой статьи.

Независимо от того, используете ли вы 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

резюме

Установка переменных среды может повлиять на процесс и результаты нашей разработки и компиляции проектов, поэтому это необходимо понимать.


Ваше внимание — самое большое поощрение на моем писательском пути!