zoukankan      html  css  js  c++  java
  • 20201105 .net Core CLI与源码编译

    目标:全面了解.net core源码;找到源码中自己的学习方向

    一、下载源码

    1、用git下载源码/克隆源码仓库

    git clone --branch v5.0.0-rc.2.20475.5 https://github.com/dotnet/runtime.git

    下载包有10分钟超时,时间长了会下载不下来。

    2、目录

    docs:英文的学习文档,从初级开始

    src:.net运行时的全部代码。coreclr、installer(运行时的安装包构建)、libraries(Core FX基础类库)、System.Private.CoreLib

    3、windows下编译

    (1)win10专业版,最新的版本号2004、1903

    (2)VS 2019专业版 16.6 备注:不能是预览版

    (3)长路径支持:组策略中长路径、git长路径:

    组策略(gpedit.msc)——>计算机配置——>管理模板——>系统——>文件系统——>启用Win32长路径

     管理员模式下,git config --system core.longpaths true

    (4)VS更多——>导入配置——>runtimesample——>.vsconfig,可以看到最低支持的配件。

    (5)CMake:.net core源码底层与操作系统交互的部分是C++写的,编译项目的Makefile文件是用CMake生成的。

    https://cmake.org/download/  下载正式的最新版    需要加载到环境变量中

    (6)Python  最新正式版  需要加载到环境变量中

    4、编译

    (1) ./build.cmd --?

    (2)./build.cmd --subset help :下载比较慢,通过这个命令可以查看可以编译的子集

    (3)  ./build -subset Clr

    .build -subset Libs

    .build -subset Installer

    网络顺畅的话,编译完成大概需要20多分钟。

    比那一完成的结果在,runtime-sample——>artifacts中

    基础类库位置:bin里面的就是基础类库。   bin——>coreclr:编译好的clr目录;

    packages——>Debug——>Shipping——>dotnet-runtime.5.0.0-dev-win-x64.msi:编译好的运行时

    dotnet --info   :查看编译好的运行时

    5、如何让程序运行在自己编译的运行时里

    需要有运行时的符号文件才能进入到源码里面。使用Debug版本的运行时,是附带PDB的。

     禁用生成可执行文件

    6、linux下编译

     

     二、.net开发人员是否有必要研究.net core的源代码

    JIT:即时编译器; 

     源码分两部分:底层执行引擎(系统的API、)、基础类库(HttpClient、工具类)

    Core CLR的源码不适合.net开发人员去阅读,.net开发人员不是做底层的,做的是上层应用,没必要去学习底层。

    架构师需要懂底层技术吗?.net架构师做的是上层的架构,相对于clr来说,library是上层的;但是library相对于core源码来说,也是底层的。可以学习library。

    做开发时,先接触框架——>做业务——>自己搭建框架——>做一些相对业务开发的底层——>造轮子——>研究源码。

    学习技术,是从上往下学的,从上层到底层。library可以在造轮子时研究,在会造轮子之前可以不看。

     三、练习

    1、编译原理

  • 相关阅读:
    74HC165并转串级联芯片学习记录
    道砟电阻 钢轨阻抗 列车分路电阻
    电压的有效值、平均值与峰值
    铁路信号继电器
    C语言语法记录
    程序编译过程中错误记录
    min-max容斥
    矩阵树定理
    题解 SP1812 【LCS2
    杜教筛
  • 原文地址:https://www.cnblogs.com/lanyuejiagou/p/13934520.html
Copyright © 2011-2022 走看看