Mono 7源码编译

起因

既然编译.Net CoreCLR,就顺手对Mono进行编译,因为.Net 5进行统一后,.Net CoreCLR和Mono源码都在Runtime中,两者编译都使用cmd/sh(最终都是使用PowerShell进行验证依赖组件,在C/C++代码都是使用cmake进行管理项目的).

依赖组件

参考: 如何编译.Net 6 Runtime源码 准备工作.

编译Mono

#编译Mono
./build.cmd mono -rc Debug -lc Debug

如何编译Mono源码

编译Mono要CoreCLR快不少.看编译结果:

编译Mono生成的文件

如何生成Mono的解决方案呢?

build.cmd不支持生成Mono的解决方案.
build.cmd不支持生成Mono解决方案文件
就想到mono源码也是cmake管理的.那就用cmake生成解决方案.
使用cmake 界面工具,对Mono进行配置
使用cmake 界面工具,生成mono解决方案文件

Mono解决方案

发现Mono解决方案,调整的比较大,看到这些,发现Mono现在更侧重于Blazer(Blazer客户端模式,生成WebAssembly是Mono支持的).
Mono解决方案,调整较大

学习和调试Mono

如何学习和调试Mono源码
秋风 2022-01-02