.NET编译过程
总结一下.NET的编译过程,
一般的高级编程语言会把代码编译成机器码,也就是我们说的非托管代码,执行在编译它的电脑上。
而.NET编译代码的时候会把高级编程语言编译成中间语言 运行在CLR(公共语言运行库)上,也就是把代码集成一个exe文件中,
.NET 在编译过程中 没有直接编译成CPU认识的代码,而是编译成了CLR所认识的代码,这为跨平台奠定了基础。
比如我们在C语言中编写的代码要移植到C#中 C#中只要有相应的编译器(JIT) 这时候就能直接编译从另一种语言编译过来的CLR也就是exe文件。
总的来说,编译过程就是把用户看得懂的语言比如 Console.WriteLine("hello,world");编程成CLR认识的代码也就是集成exe文件。
然后由CLR编译成CPU所认识的0和1.
以上。
.NET编译过程的更多相关文章
- Android工程的编译过程
现在很多人想对Android工程的编译和打包进行自动化,比如建立每日构建系统.自动生成发布文件等等.这些都需要我们对Android工程的编译和打包有一个深入的理解,至少要知道它的每一步都做了什么,需要 ...
- GCC编译过程
以下是C程序一般的编译过程: gcc的编译流程分为四个步骤,分别为:· 预处理(Pre-Processing) 对C语言进行预处理,生成*.i文件.· 编译(Compiling) 将上一步生成的*.i ...
- Linux系统GCC常用命令和GCC编译过程描述
前言: GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理 C语言.GCC 很快地扩展,变得可处理 C++.后来又 扩展能够支持更多编程语言,如Fortran. ...
- Hadoop源码编译过程
一. 为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通 ...
- gcc编译过程简述
在linux系统上,从源文件到目标文件的转化是由编译器完成的.以hello.c程序的编译为例,如下: dfcao@linux: gcc -o hello hello.c 在这里,gcc编译器读取源文件 ...
- android 编译过程
引用:http://www.cnblogs.com/devinzhang/archive/2011/12/20/2294686.html http://blog.sina.com.cn/s/blog_ ...
- [转]UE4 Blueprint编译过程
Blueprint 编译概述 一.术语 Blueprint,像C++语言一下的,在游戏中使用前需要编译.当你在BP编辑器中,点击编译按钮时候,BP资源开始把属性和图例过程转换为一个类对象处理. 1 ...
- TextMate2 最新版下载及源码编译过程
TextMate2 已经开源,我刚编译成功,如果有需要的同学可以点击下面百度网盘的链接下载.我系统版本是:Mac OS X 10.8.4. TextMate version 2.0-alpha.946 ...
- C语言的编译过程、安装gcc编译器以及设置环境变量
以我对C语言编译过程的了解,我用了一点时间画了一个图,提供给大家参考一下,希望有些能对您的问题提上帮助. 前几天刚初步学习了C语言的编译过程,感触挺深的.在C语言中头文件其实起了一个很大的作用. 1. ...
- 关于一个程序的编译过程 zkjg面试
http://blog.csdn.net/gengyichao/article/details/6544266 一 以下是C程序一般的编译过程: 从图中看到: 将编写的一个c程序(源代码 )转换成可以 ...
随机推荐
- .Net Core in Docker - 在容器内编译发布并运行
Docker可以说是现在微服务,DevOps的基础,咱们.Net Core自然也得上Docker..Net Core发布到Docker容器的教程网上也有不少,但是今天还是想来写一写. 你搜.Net c ...
- forname,newInstance的作用及使用
Forname可以获得类名对应的class对象: String classname=“java.util.Date” Class cl=Class.forName(className); newIns ...
- ModelForm错误验证自定义钩子和全局钩子
当需要对model_class中字段作进一步验证,作进一步的约束时,需要使用到钩子,即claan_xxx和clean方法.其返回的errors有点不是那么好处理.看示例. 1.Model_clas ...
- Django安装(第一个项目)
day60 从系统中选择已存在的解释器. 新建Django项目 命令行创建: django-admin startproject mysite ...
- springboot入门之简单demo
项目构建 我们采用maven构建SpringBoot工程,首先创建一个maven工程,对应的pom文件如下: <properties> <java.version>1.8< ...
- linux文件的硬连接和软连接
建立软连接:ln -s 原路径 目标路径 原理示意图: 特点: 1. 相当于win中的快捷方式 2. 删除链接文件,源文件不受影响 3. 删除源文件,链接文件失效 4. ...
- WinForm—串口通讯
ialPort(串行端口资源) 常用属性: BaudRate 此串行端口上要使用的波特率 DataBits 每发送/接收一个字节的数据位数目 DtrEnable 在通讯过程中是否启用数据终端就绪(St ...
- c# Xml反序列化示例
Xml 示例 <?xml version="1.0" encoding="utf-8"?> <CarCollection> <Ca ...
- HBase 安装设置
一.安装环境 1. JDK:jdk-7u79-linux-x64.tar.gz 2. HBase:hbase-0.98.13-hadoop1-bin.tar.gz 3. Hadoop:hadoop-1 ...
- Python -- Windows编程 -- 注册表
1.查询开机自启项 startUp.py import re import win32api, win32con def GetValues(fullname): #分割出基本项name[0] nam ...