老年人编程系列-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编译其他包和命令
相关文章
|
1月前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
33 1
|
1月前
|
数据采集 监控 Java
go语言编程学习
【11月更文挑战第3天】
42 7
|
1月前
|
Unix Linux Go
go进阶编程:Golang中的文件与文件夹操作指南
本文详细介绍了Golang中文件与文件夹的基本操作,包括读取、写入、创建、删除和遍历等。通过示例代码展示了如何使用`os`和`io/ioutil`包进行文件操作,并强调了错误处理、权限控制和路径问题的重要性。适合初学者和有经验的开发者参考。
|
1月前
|
Go
go语言编译时常量表达式
【10月更文挑战第20天】
34 3
|
1月前
|
编译器 Go
go语言编译选项
【10月更文挑战第17天】
42 5
|
1月前
|
Go
go语言使用常量和编译时常量表达式
【10月更文挑战第19天】
33 2
|
2月前
|
Java 大数据 Go
Go语言:高效并发的编程新星
【10月更文挑战第21】Go语言:高效并发的编程新星
53 7
|
2月前
|
Go 数据处理 调度
Go语言中的并发模型:解锁高效并行编程的秘诀
本文将探讨Go语言中独特的并发模型及其在现代软件开发中的应用。通过深入分析 Goroutines 和 Channels,我们将揭示这一模型如何简化并行编程,提升应用性能,并改变开发者处理并发任务的方式。不同于传统多线程编程,Go的并发方法以其简洁性和高效性脱颖而出,为开发者提供了一种全新的编程范式。
|
3月前
|
存储 缓存 Go
go语言编程系列(五)
go语言编程系列(五)
|
3月前
|
存储 JSON 安全
go语言编程系列(七)
go语言编程系列(七)