专栏名称: dotNET跨平台
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,Linux 主流平台
目录
相关文章推荐
金融街老裘  ·  政策的大变化 ·  5 天前  
今天看啥  ›  专栏  ›  dotNET跨平台

AOT漫谈专题(第四篇): C#程序如何编译成Native代码

dotNET跨平台  · 公众号  ·  · 2024-10-16 08:00

文章预览

一:背景 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\Administrator\.nuget\packages\runtime. ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览
推荐文章