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,最终生成可执行文件
相关推荐
Dxy123931021616 小时前
Python 使用正则表达式将多个空格替换为一个空格
开发语言·python·正则表达式
我学上瘾了16 小时前
Spring Cloud的前世今生
后端·spring·spring cloud
波波00717 小时前
ASP.NET Core 健康检查实战:不只是一个 /health 接口
后端·asp.net
小码哥_常17 小时前
Spring Boot 搭建邮件发送系统:开启你的邮件自动化之旅
后端
故事和你9117 小时前
洛谷-数据结构1-1-线性表1
开发语言·数据结构·c++·算法·leetcode·动态规划·图论
石榴树下的七彩鱼18 小时前
图片修复 API 接入实战:网站如何自动去除图片水印(Python / PHP / C# 示例)
图像处理·后端·python·c#·php·api·图片去水印
我叫黑大帅18 小时前
为什么TCP是三次握手?
后端·网络协议·面试
我叫黑大帅18 小时前
如何排查 MySQL 慢查询
后端·sql·面试
techdashen18 小时前
Rust项目公开征测:Cargo 构建目录新布局方案
开发语言·后端·rust
星空椰18 小时前
JavaScript 进阶基础:函数、作用域与常用技巧总结
开发语言·前端·javascript