1、如果进行单个文件编译go build xxx.go
2、批文件编译
不实际编译它,只输出它的编译过程:
1 |
|
简单的编译过程分析:
上面的过程确认了两个事情:
- Runtime会永远随着用户代码一起编译
- 在windows平台上编译出来了一个exe的可执行文件
sources就是你的源代码,AST就是生成的语法树,genssa就是生成的与平台无关的中间码SSA,当然中间还有很多的其它步骤,这里不再列举,可以点击展开查看
机器码生成:
- 先生成Plan9汇编代码(与平台相关)
- 最后编译为机器码
- 输出的机器码为.a文件
查看Plan9汇编代码
1 |
|
链接:
- 将各个包进行链接,包括runtime,最终生成可执行文件