一:背景
1. 讲故事
大家都知道所谓的.NET Native AOT即通过AOT编译器直接将C#代码编译成机器码,大家也习惯用C/C++的编译过程来类比,都是静态编译本质上都差不多,这篇我们借助工具从宏观层面去看一看AOT的编译过程。
二:C/C++ 的编译过程
用gcc编译过c代码的朋友都知道,分别可以用 -E, -S, -c,-o 来显示编译的各个阶段,即:
- 预处理阶段:落地 define,include文件和代码。
- 编译阶段:将C转为汇编代码。
- 汇编阶段:汇编代码转为机器码。
- 链接阶段:链接libc库及系统库,生成可执行文件。
画一张图如下:

这个世界上虽然说隔行如隔山,但隔行不隔理,有了这些知识,接下来就是按图索骥的对号入座即可。
三:AOT编译过程
在.NET中AOT编译器叫做ilc.exe,它是用C#代码写的,并且随.NET版本更新,比如我这里的 C:\Users
订阅专栏 解锁全文
1198

被折叠的 条评论
为什么被折叠?



