关于源码的学习,如果你是初级程序员,根本没有必要去研究。 这是一个耗时的经历,甚至会影响你现有的学习路径。 如果你有一定的基础,但又想在IT领域取得一定的成就,那么学习源码将是唯一的出路。 下面介绍一下学习.NET源码之前计划的工作。 NET源代码编译。 。
1.下载源码:
.NET平台源代码存储库:
你可以从git拉取或者直接下载,相信你已经很熟悉了。
2、环境规划
系统:windows10专业版(官方推荐版本是专业版1903),或者linux系统的ubuntu,下面我们主要介绍windows环境
VisualStudio:,最好是最新版本
胃肠道:
CMake(最新推荐):
Python(最新推荐):
3.启用长文件路径
运行时存储库的某些路径太长,无法启用长路径可能会导致错误。 需要启用两个东西,一是windows系统本身,二是源码当前文件夹的git路径。
Windows 系统本身:组策略 (gpedit.msc) > 计算机配置 > 管理模板 > 系统 > 文件系统 > 启用 Win32 长路径
当前文件夹git路径:以管理员角色打开管理终端(CMD、powershell等),cd到源码目录,输入以下脚本
git config --system core.longpaths true
四、.NET组件安装
安装的主要目的是编译所需的组件。 如果安装不完整,会报错。 例如net源码怎么编译,有 C++ 组件。 有两种安装方法。
1)打开VisualStudio安装程序进行安装,必须勾选.NET桌面开发和C++桌面开发两个组件。如下图
2)项目中使用.vsconfig手动安装
用VS打开下载的项目,点击解决方案资源管理器,顶部会提示安装,如右图
5.编译源码
有两种方法。 第一种方式是直接运行源码中retime目录下的build.cmd命令脚本。 这个方法比较长,尤其是在墙上。 也许环境会因为网络激励而挂起。 ,除非有能够翻墙或者墙外环境的VPN。 二是使用命令脚本以管理员角色打开管理终端(CMD、powershell等),cd到源代码目录net源码怎么编译,选择性编译源代码项目。 下面是三个关键命令。
查看编译命令。build.cmd -?
这个主要是查看命令说明,注意英文,如右图
具体说明请翻译或查询。
查看当前可编译的项目。build.cmd -subset help
编译单个工程的命令为.build.cmd -subset 工程名称,如编译Libs命令为:.build.cmd -subset Libs
如果编译成功,会显示“生成成功,0个错误,0个警告”。 由于生成时间较长,这里就不展示了。
六,结论
如果编译成功,我们就可以研究和调试源代码了。 我们研究的源码主要在src目录下,有9个文件夹。 我们主要研究库和coreclr。 coreclr是.NET运行时,有GC、jit等,是C++编译的,也有一些C#和python的。 如果 C++ 很棒,你可以学习这篇文章。 这些库是纯.net公共库,由C#代码编译,是研究的重点。 下一篇文章介绍学习和调试源码研究。