go编译执行文件

1、如果进行单个文件编译go build xxx.go

2、批文件编译

不实际编译它,只输出它的编译过程:

|---|-----------------|
| 1 | go build ``-n |

简单的编译过程分析:

上面的过程确认了两个事情:

  • Runtime会永远随着用户代码一起编译
  • 在windows平台上编译出来了一个exe的可执行文件

sources就是你的源代码,AST就是生成的语法树,genssa就是生成的与平台无关的中间码SSA,当然中间还有很多的其它步骤,这里不再列举,可以点击展开查看

机器码生成:

  • 先生成Plan9汇编代码(与平台相关)
  • 最后编译为机器码
  • 输出的机器码为.a文件

查看Plan9汇编代码

|---|--------------------------------------|
| 1 | go build ``-gcflags -S main.go |

链接:

  • 将各个包进行链接,包括runtime,最终生成可执行文件
相关推荐
网域小星球5 分钟前
C 语言从 0 入门(二十二)|内存四区:栈、堆、全局、常量区深度解析
c语言·开发语言
止语Lab11 分钟前
Go 内存管理优化:内联是逃逸分析的隐藏杠杆
golang
悟空码字13 分钟前
别再System.out了!这份SpringBoot日志优雅指南,让你告别日志混乱
java·spring boot·后端
晓纪同学21 分钟前
EffctiveC++_第三章_资源管理
开发语言·c++·算法
绿豆人24 分钟前
Go设计模式学习
学习·设计模式·golang
蚊子码农28 分钟前
每日一题--C语言指针与内存泄漏:一道小问题的深度复盘
c语言·开发语言
Fanfanaas28 分钟前
Linux 系统编程 进程篇(一)
linux·运维·服务器·c语言·开发语言·网络·学习
星辰徐哥32 分钟前
ARP缓存表:作用、查看方法与刷新技巧
开发语言·缓存·php
ego.iblacat34 分钟前
lvs 集群部署
开发语言·php·lvs
沐雪轻挽萤36 分钟前
6. C++17新特性-编译期 if 语句 (if constexpr)
开发语言·c++