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,最终生成可执行文件
相关推荐
lsx2024068 小时前
Vue3 自定义指令
开发语言
牛奔9 小时前
Go语言中结构体转Map优雅实现
开发语言·后端·macos·golang·xcode
掘金码甲哥9 小时前
我不允许谁还分不清这三种watch机制的区别
后端
wujj_whut9 小时前
【Conda实战】从0到1:虚拟环境创建、多Python版本管理与环境切换全指南
开发语言·python·conda
蜗牛^^O^9 小时前
java中的JUC
java·开发语言
张心独酌9 小时前
Rust新手练习案例库- rust-learning-example
开发语言·后端·rust
扶苏-su9 小时前
Java--转换流-InputStreamReader 和 OutputStreamWriter
java·开发语言
码事漫谈9 小时前
一文读懂“本体论”这个时髦词
后端
IguoChan9 小时前
D2L(2) — softmax回归
后端
无限进步_9 小时前
【C语言&数据结构】二叉树遍历:从前序构建到中序输出
c语言·开发语言·数据结构·c++·算法·github·visual studio