老年人编程系列-go的编译顺序

简介: 根据官方文档https://golang.org/doc/install/source编译go源码需要$ cd src$ ./all.bash拨拉开src/all.bash文件可以看到如下步骤加载make.

根据官方文档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. dist编译go
  7. go编译其他包和命令
相关文章
|
3月前
|
安全 Go 数据处理
Go语言CSP编程实战:通道通信技术
Go语言CSP编程实战:通道通信技术
42 0
|
3月前
|
Go
高效Go语言编程:os包实用技术大揭示
高效Go语言编程:os包实用技术大揭示
40 0
|
5月前
|
Go 区块链
go 编译 自定义 图标 ico文件
go 编译 自定义 图标 ico文件
39 0
|
5月前
|
Go Windows
Go 交叉编译 跨平台编译(windows系统跨平台编译)
Go 交叉编译 跨平台编译(windows系统跨平台编译)
32 0
|
1月前
|
SQL 前端开发 Go
编程笔记 GOLANG基础 001 为什么要学习Go语言
编程笔记 GOLANG基础 001 为什么要学习Go语言
|
1月前
|
Go 开发工具 git
编程笔记 GOLANG基础 003 Go语言开发环境搭建
编程笔记 GOLANG基础 003 Go语言开发环境搭建
|
1月前
|
存储 Java Go
编程笔记 GOLANG基础 002 Go语言简介
编程笔记 GOLANG基础 002 Go语言简介
|
2月前
|
自然语言处理 IDE Go
高效Go编程之格式化+代码注释+命名+分号+控制结构
【2月更文挑战第6天】高效Go编程之格式化+代码注释+命名+分号+控制结构
31 0
|
3月前
|
缓存 IDE 编译器
假如没有go install,编译会多痛苦?
假如没有go install,编译会多痛苦?
40 0
|
3月前
|
Go 索引
Go系统编程不求人:os包全面解析
Go系统编程不求人:os包全面解析
70 0