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,最终生成可执行文件
相关推荐
百锦再11 分钟前
Java Map常用方法和实现类深度详解
java·开发语言·spring boot·struts·kafka·tomcat·maven
枫叶丹431 分钟前
【Qt开发】Qt界面优化(五)-> Qt样式表(QSS) 子控件选择器
c语言·开发语言·数据库·c++·qt
Never_Satisfied33 分钟前
在c#中,实现把图片文件拖动到pictureBox控件上
开发语言·c#
独自破碎E43 分钟前
BISHI61 小q的数列
java·开发语言
计算机毕设VX:Fegn08951 小时前
计算机毕业设计|基于springboot + vue连锁门店管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
南部余额1 小时前
SpringBoot文件上传全攻略
java·spring boot·后端·文件上传·multipartfile
lsx2024061 小时前
XHR.readyState详解
开发语言
游乐码1 小时前
c#静态成员
开发语言·c#
FirstFrost --sy1 小时前
高并发内存池:tcmalloc核心实现
开发语言
彩妙不是菜喵2 小时前
C++:深入浅出讲解=>多态
开发语言·c++