filmov
tv
Go курс Плюс - с нуля. Компиляция в Golang
Показать описание
- Компиляция - что это такое
- Опции компиляции (Какие системы доступны)
- Файловые ресурсы для программ
Go Компиляция — необходимый этап создания исполняемого двоичного кода.
Компилятор проходит долгий путь: его пишут на C, переносят на Go и постоянно оптимизируют.
Два этапа:
На первом выполняется анализ исходного кода и по мере синтаксического разбора создаётся
абстрактная синтаксическая структура исходного кода, которая называется
АСД (абстрактное
синтаксическое
дерево - AST abstract syntacsical tree).
На втором этапе вместе с многочисленными оптимизациями происходит трансформация
представления исходного кода в машинный код.
В файле go/src/cmd/compile/README.md исходного кода подробности по таким этапам.
Есть две переменных среды GOOS и GOARCH которые определяют для какой системы и для какой архитектуры процессора должно быть скомпилирован код в папке в которой запускаем команду: go build
И выставляем нужные значения в переменных:
GOOS=linux GOARCH=amd64 go build
Смотрим их:
printenv | grep GO
Смотрим доступные системы для компиляции:
go tool dist list
Дополнительные опции можно посмотреть по команде:
go build --help
- Опции компиляции (Какие системы доступны)
- Файловые ресурсы для программ
Go Компиляция — необходимый этап создания исполняемого двоичного кода.
Компилятор проходит долгий путь: его пишут на C, переносят на Go и постоянно оптимизируют.
Два этапа:
На первом выполняется анализ исходного кода и по мере синтаксического разбора создаётся
абстрактная синтаксическая структура исходного кода, которая называется
АСД (абстрактное
синтаксическое
дерево - AST abstract syntacsical tree).
На втором этапе вместе с многочисленными оптимизациями происходит трансформация
представления исходного кода в машинный код.
В файле go/src/cmd/compile/README.md исходного кода подробности по таким этапам.
Есть две переменных среды GOOS и GOARCH которые определяют для какой системы и для какой архитектуры процессора должно быть скомпилирован код в папке в которой запускаем команду: go build
И выставляем нужные значения в переменных:
GOOS=linux GOARCH=amd64 go build
Смотрим их:
printenv | grep GO
Смотрим доступные системы для компиляции:
go tool dist list
Дополнительные опции можно посмотреть по команде:
go build --help
Комментарии