准备CLR源码阅读环境

微软发布了CLR 2.0的源码,这个源码是可以直接在freebsd和windows环境下编译及运行的,请在微软shared source clihttp://www.microsoft.com/en-us/download/details.aspx?id=4917)链接处下载,并用7zip等工具解压,以后简称sscli – 即Shared Source CLI。

解压后,根目录下有readfirst.html文件,里面说明了该开源版本里包含的功能列表:

  1. 泛型的实现;
  2. 轻量级的代码生成;
  3. 委托的实现;
  4. 反射;
  5. 装配件(Assembly)的元数据格式;
  6. 匿名函数和委托;
  7. .NET基本类库(BCL);

编译和运行代码

要编译clr源码的话,需要满足下面条件:

  • Microsoft Visual Studio 2005专业版以上,请使用默认安装,避免在编译的时候各种找不到文件的情况;
  • Perl。

另外,还有一个准备步骤,这个问题在中文版的Windows系统中都会遇到,由于Rotor中部分源代码以ANSI字符存放,其中中含有在936 Code Page,也就是Simplified Chinese GBK扩展字符集下无法解析的字符,在Build的时候VC编译器CL会报warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss。同时在Build的时候由于打开了/WX开关,任何warning都会被当作是error而直接导致部分编译失败。解决方法有:

  1. 把全部有问题的源代码转换成Unicode编码;
  2. 更改系统当前的区域设置(Locale)为英文

一般来说改系统的Locale最合适。在“控制面板”中“日期、时间、语言和区域设置”中的“区域和语言选项”的“高级”页中修改“非Unicode程序的语言”的选项为“英文(美国)” ,重启即可。

在编译过程中,需要将几个程序加入PATH路径,以便编译程序能找到它们:

  1. 将Perl的路径包含进来,如:C:\Perl\bin;

安装好上面的软件并将sscli源码解压之后,打开“Visual Studio 2005 Command Prompt”窗口,切换到sscli的根目录,下面假设根目录路径是:c:\sscli。依次执行下面的命令:

cd /d c:sscli

rem 设置当前编译和运行环境为调试环境

env debug

rem 编译所有的程序

buildall

  

编译成功之后,写一个简单的C#文件,如下表:

using System;

public class Hello
{
      public static void Main()
      {
             Console.WriteLine("Hello, sscli");
      }
}

  

在编译CLR源码的控制台运行下面的命令编译和执行C#程序(前面执行的 env debug命令,已经自动设置好PATH环境变量,C#编译器csc.exe程序指向的是我们编译好的程序):

  1. 编译:csc test.cs
  2. 运行程序:clix test.exe

注意

  1. 尽量使用英文原版的Windows XP进行编译,或者按前所述改成英文的区域设置;
  2. 不要使用VS 2005以上的IDE编译,我曾经用VS 2008编译成功过,但写这篇文章的时候又碰到很多编译错误,为了省事的话,尽量用VS 2005编译;
  3. 需要确认VS 2005安装好以后,有“C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK”这个文件夹,在编译的时候,需要用到里面的头文件和库文件。
时间: 2024-10-01 10:52:44

准备CLR源码阅读环境的相关文章

Mac搭建Hadoop源码阅读环境

1.本次Hadoop源码阅读环境使用的阅读工具是idea,Hadoop版本是2.7.3.需要安装的工具包括idea.jdk.maven.protobuf等 2.jdk,使用的版本是1.8版,在jdk官网下载jdk-8u111-macosx-x64.dmg,点击安装,一路next. 3.idea安装,略 4.maven,使用的版本是3.3.9,下载apache-maven-3.3.9-bin.tar,解压: tar -zxvf  apache-maven-3.3.9-bin.tar 进入 Mave

【Spark】配置Spark源码阅读环境

Scala构建工具(SBT)的使用 SBT介绍 SBT是Simple Build Tool的简称,如果读者使用过Maven,那么可以简单将SBT看做是Scala世界的Maven,虽然二者各有优劣,但完成的工作基本是类似的. 虽然Maven同样可以管理Scala项目的依赖并进行构建,但SBT的某些特性却让人如此着迷,比如: 使用Scala作为DSL来定义build文件(one language rules them all); 通过触发执行(trigger execution)特性支持持续的编译与

Hadoop源码阅读环境搭建

Hadoop源码阅读环境搭建 一.说明 作为一个学习hadoop的同学,必须在本机上搭建hadoop源码阅读环境,这样,在方便阅读源码的同时也方便进行调试和源码修改.好了,下面开始搭建环境. 1.环境说明:hadoop 版本:1.2.1. IDE:eclipse.操作系统:centos 2.网上有人是通过eclipse的新建项目指定目录的方式将hadoop目录转换成Eclipse工程同时导入eclipse,具体做法如下: File-->new-->Java Project-->勾掉Use

Spring源码阅读环境搭建

目录 安装gradle 导入Spring源码 创建测试模块my-test 本文思维导图 本文将粗略的搭建一个Spring源码的阅读环境,为后面的源码阅读做一个准备.做任何事情不管是有一个完美的或者是不太完美的开头,只要去做了,那么就是一种胜利. 由于spring使用了gradle构建工具,接下来先安装gradle. 安装gradle 从Gradle官网下载gradle安装包,打开https://gradle.org/releases/ 将下载的安装包gradle-x.x.x-all.zip解压到

idea构建spring源码阅读环境

(一)安装git和Gradle Spring项目托管在github之上,基于Gradle来构建项目.所以要想搭建Spring的阅读环境,首先需要安装github和Gradle.对于一个程序员来说,github肯定都是安好了的,这里只简单介绍一下Gradle的安装. 首先,我们可以从https://gradle.org/releases/页面下载我们需要的Gradle版本(我的是gradle-4.0.2-all).下载完成之后,解压到自己指定的目录,然后类似配置JDK一样配置环境变量: (1)根据

jdk源码阅读-环境配置

我们使用的系统是Ubuntu的系统,代码查看的工具用的是eclipse. 使用以下方法来搭建一个良好的代码阅读环境: 通常在windows下安装好的jdk在其src文件下即可找到对应的jdk类库的源代码.但是在Ubuntu/Linux就不同了.在我查看后发现src文件夹为空. 则可以依照以下方式,下载好openjdk的源代码 http://www.cnblogs.com/super-d2/p/3990354.html 下载好源代码后,我们在windows下可以使用记事本或者ubuntu下的ged

Idea1.5使用Maven搭建Apache Spark1.6源码阅读环境

1.插件安装,在Idea界面依次:File->settings->plugins,安装Maven 2.下载Spark1.6.2源码,这个在GitHub上下载,具体流程自己百度,很简单 3.在Idea右侧会有Maven Projects标签,点击+,选择下载好的源码,找到pom.xml,打开即是将源码自动导入到Maven中,Maven会自动编译 4.然后就可以好好阅读Spark源码啦 PS:过程中可以有一些不同,多百度,自己查查哪些步骤不会,慢慢摸索,我也是Spark初学者.

基于Eclipse构建Hadoop源码阅读环境

一.工具 1.hadoop-2.6.0-src.tar 2.eclipse 3.maven 4.protoc二.下载源码地址:http://mirrors.hust.edu.cn/apache/hadoop/common/三.准备maven包:eclipse-maven3-plugin M2_HOME E:\apache-maven-3.3.3 path ;%M2_HOME%\bin 测试:cmd-->mvn -v四.protoc安装 1.准备:protoc-2.5.0-win32.zip.pr

windows下kafka源码阅读环境搭建

工具准备:jdk1.8,scala-2.11.11,gradle-3.1,zookeeper-3.4.5,kafka-0.10.0.1-src.tgz, kafka_2.11-0.10.0.1.tgz 安装jdk 安装scala 搭建zookeeper kafka源码构建 解压kafka-0.10.0.1-src.tgz,命令行进行kafka-0.10.0.1-src,执行gradle idea 注: 1)gradle idea,用国外的库构建的下载速度很慢,在进入项目里面,找到build.gr