go编译过程

执行go build后,会作何操作呢?

  1. 下载依赖包
  2. 以package粒度,多核并行compile,生成各个.a文件, $WORK/b001/ 代表main package
  3. 单核link,将第二步生成的.a文件链接,生成最终的二进制文件

-v verbose,可以打印编译的包
-x 将编译过程输出,可以看到go会在 /tmp/ 目录新建临时路径,执行编译后cp编译超出到当前路径

gcflags 可以将参数传递个go tool compile,常用的是 gcflags 'all=-N -l' # -N表示no optimalize,禁止编译器优化;-l表示禁止内联,便于delve debug

编译的过程:

  1. 文本分析:输入是文本,进行字符串识别出各个含义
  2. 词法分析:产出语法树
  3. 语法分析
posted @   dancingwolves  阅读(87)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示