天天看點

老年人程式設計系列-go的編譯順序

根據官方文檔 https://golang.org/doc/install/source

編譯go源碼需要

$ cd src

$ ./all.bash

撥拉開src/all.bash檔案可以看到如下步驟

  1. 加載make.bash的内容
  2. 執行run.bash
  3. 執行dist banner指令

make.bash編譯/cmd/dist,

run.bash使用dist編譯exec go tool dist test -rebuild "$@"

非常神奇的是,對于1.5之前的版本,dist是用C寫的,編譯的順序

  1. gcc編譯dist,
  2. dist編譯go

    但是在1.5之後的版本,dist也是用GO寫的,是以編譯的順序是

  3. gcc編譯dist
  4. dist編譯工具鍊
  5. dist重編自己
  6. go編譯其他包和指令

繼續閱讀