Как GOARCH и GOOS используются при компиляции go-toolchain? - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь согласовать, почему make.bash принимает GOARCH, GOOS и другие целевые переменные, когда он также поддерживает кросс-компиляцию для всех поддерживаемых архитектур по умолчанию .Я собираю это для amd64 / linux, но буду использовать компилятор для кросс-компиляции приложений для arm / linux во встроенном контексте.Сборки Buildroot Перейдите с помощью следующей команды

cd /builddir/build/host-go-1.10.2/src && 
    GOROOT_BOOTSTRAP=/builddir/host/lib/go-1.4.3 
    GOROOT_FINAL=/builddir/host/lib/go 
    GOROOT="/builddir/build/host-go-1.10.2" 
    GOBIN="/builddir/build/host-go-1.10.2/bin" 
    GOARCH=arm 
    GOARM=7 
    GOOS=linux 
    CC=/usr/bin/gcc 
    CXX=/usr/bin/g++ 
    GO_ASSUME_CROSSCOMPILING=1 
    CC_FOR_TARGET="/builddir/host/bin/arm-linux-gnueabihf-gcc" 
    CXX_FOR_TARGET="/builddir/host/bin/arm-linux-gnueabihf-g++" 
    CGO_ENABLED=1 
    ./make.bash

, которая отлично работает и продолжает создавать другие приложения.Мой вопрос: почему эти целевые переменные актуальны на данном этапе?Разве это не относится только к приложениям, компилируемым с помощью этой программы?

1 Ответ

0 голосов
/ 25 января 2019

Компилятор и компоновщик Go являются программами Go. make.bash необходимо знать, для какой архитектуры и какой операционной системы будет создан набор инструментов Go.

См. Загрузки - Язык программирования Go с примерами различных архитектур и операционных систем.

См. Установка Go из источника .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...