Как собрать `cmd / compile` сам - PullRequest
0 голосов
/ 22 января 2020

Цель

Я хочу собрать cmd / compile , которая является командой компиляции go.

Задача

Сначала я клонировали https://github.com/golang/go в ~/src/github.com/golang/go и изменили коды в src/cmd/compile.

Во-вторых, я перешел в ~/src/github.com/golang/go/src и набрал go build -o aaa -i cmd/compile.

Наконец , aaa работает, но не содержит ничего, что я изменил.

Как вы знаете, в любом месте (даже если ~/ или /tmp или другие), как только вы наберете go build -o aaa -i cmd/compile, вы можно получить aaa.

Но я хочу изменить его и собрать.

Как я могу это сделать?

1 Ответ

1 голос
/ 22 января 2020

Когда вы собираете пакет cmd/compile, он создает пакет stdlib для текущего компилятора, а не пакет в исходном дереве, в котором вы находитесь.

Если вы планируете работать с компилятором Самому вам необходимо bootstrap свой собственный компилятор:

  • Клонировать исходный код go
  • Go в / sr c
  • Выполнить ./all.bash

Это создаст целое дерево исходников и создаст для вас новый компилятор. Как только это будет сделано, вы должны использовать компилятор, созданный этим процессом, который находится под ~/src/github.com/golang/go/bin.

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