Как построить компиляторы Go 8g и 6g для Go - PullRequest
2 голосов
/ 16 октября 2011

Я пишу программное обеспечение, которое будет широко распространено в системах Windows, Mac и Linux на архитектурах x86 и x86-64. Всякий раз, когда я устанавливаю компилятор go на своих системах Mac и Linux, я собираю только 6g. В Windows я просто использую готовые экспериментальные двоичные файлы, которые используют 8g.

Когда я приступаю к настройке серверов сборки, я предполагаю, что мне нужно также собрать 8g, чтобы я мог производить и 32-разрядные сборки. Как настроить 8g, в частности на Mac (поскольку они могут быть x86 или x64 в зависимости от того, сколько им лет)?

Ответы [ 2 ]

3 голосов
/ 16 октября 2011

Необходимо установить переменную окружения GOARCH в 386, а не, вероятно, автоматически выбирать amd64 сценарием сборки all.bash.Подробнее см. переменные среды в документации Go.

1 голос
/ 26 октября 2011

Как сказал другой участник, используйте GOARCH. Он не сказал, что вам не нужно несколько каталогов.

Выполнить all.bash дважды, то же самое GOROOT:

GOARCH=amd64 ./all.bash
GOARCH=386 ./all.bash

Когда вы что-то строите с gomake, настройте GOARCH, если значение по умолчанию вам не подходит

GOARCH=386 gomake

К сожалению goinstall пока не чтит GOARCH.

Обратите внимание, что компиляторы gc всегда кросс-компилируются. Если у вас есть компиляторы для нужной вам архитектуры, установите GOOS и соберите пакеты в $GOROOT/src/pkg, тогда вы сможете создавать свое программное обеспечение для любой операционной системы или архитектуры.

GOARCH=386 GOOS=windows gomake
...