昨天得知微软在GitHub上发布CoreCLR的源代码之后,立马从GitHub上签出代码,并尝试在Windows Server 2012上进行编译。

参考CoreCLR的开发者指南(Developer Guide),先安装CMake —— CoreCLR所用的开源跨平台Build工具。

然后将 C:\Program Files (x86)\Microsoft Visual Studio 11.0 文件夹(VS2012)中的DIA SDK文件夹复制/粘贴至 C:\Program Files (x86)\Microsoft Visual Studio 11.0 文件夹(VS2013)中。[注:我的电脑上安装过VS2012,现在安装有VS 2013与VS 2015 CTP 5]

然后运行VS 2013的命令行Developer Command Prompt for VS2013,进入CoreCLR代码库所在的文件夹,运行命令 build clean 进行编译。

Commencing CoreCLR Repo build
Doing a clean build
Checking pre-requisites...
Commencing build of native components for x64/debug
...

编译了近20分钟,结果以失败告终,出现了400多个错误。大量错误都是这样的:

error C2220: warning treated as error - no 'object' file generated

在GitHub的CoreCLR Issue列表中发现有人遇到了同样的问题(Can't built, it turns out 'warning C4819' #49),CoreCLR的开发人员Matt Ellis正在努力解决,问题似乎与Windows的语言设置(system locacle)有关。我的电脑上虽然安装的是英文版Windows,但system locacle设置的是中文,见下图:

后来Matt Ellis发布了一个CoreCLR的fork解决了这个问题。

今天早上git pull coreclr发现这个修复已经合并到CoreCLR的代码库中。于是继续对CoreCLR进行Build尝试,error C2220错误消失了,但依然没有build成功,还有几十个错误。

发现其中有这样的错误:

fatal error C1083: Cannot open source file:
'C:\Program Files (x86)\Microsoft Visual Studio 12.0\DIA SDK\idl\dia2.idl':
No such file or directory

到 C:\Program Files (x86)\Microsoft Visual Studio 12.0\DIA SDK 中一看,只有一个bin文件夹,根本没有idl文件夹。

DIA SDK是从 C:\Program Files (x86)\Microsoft Visual Studio 11.0 文件夹中复制过来的,虽然安装过VS 2012,但安装VS 2013之后,将VS 2012卸载了,DIA SDK中只有bin文件夹可能与这个有关。

后来,抱着试试看的心理,到VS 2015的文件夹 C:\Program Files (x86)\Microsoft Visual Studio 14.0 中看了一下,也有DIA SDK文件夹,而且其中有idl文件夹。于是,将这个DIA SDK文件夹复制到 C:\Program Files (x86)\Microsoft Visual Studio 12.0\ 中重新进行build。

这次终于build成功了!可以在binaries\Product\x64\debug文件夹中看到编译的成果。

另外,在CoreCLR的代码库中没有可供Visual Studio打开的.sln文件。后来在编译生成的binaries\CMake文件夹中发现了CoreCLR.sln,用Visual Studio打开它即可。

Windows上成功编译CoreCLR源代码的更多相关文章

  1. Linux上成功编译CoreCLR源代码

    >>Build日期:2015-2-5下午(编译失败). 开始Linux发行版用的是CentOS 6.5,操作步骤: 1)配置git: git config --global http.ss ...

  2. Mac OS X上尝试编译CoreCLR源代码

    CoreCLR登陆GitHub之后,体验CoreCLR首当其冲的方式就是在自己的电脑上编译它,昨天分别在Windows与Linux上成功编译了CoreCLR,详见: 1)Windows上成功编译Cor ...

  3. netcdf源码在windows上的编译

    作者:朱金灿 来源:http://blog.csdn.net/clever101 今天搞搞netcdf源码在windows上的编译,折腾了半天,算是搞成了,特地记录一下过程.我的目标是要生成netcd ...

  4. 在Windows上一键编译各种版本的Protobuf

    所需工具 : cmake  for  windows 和  git for windows 原理:protobuf 是google的一个开源项目,其源代码在github上可以下载到,并且源码都采用cm ...

  5. 在windows上一键编译各种版本的protobuf(2017-12-05修改)

    所需工具 : cmake  for  windows 和  git for windows 原理:protobuf 是google的一个开源项目,其源代码在github上可以下载到,并且源码都采用cm ...

  6. darknet+opencv在windows上的编译

    darknet 源码网站:https://github.com/pjreddie/darknet 技术支持官网:https://pjreddie.com/darknet/ darknet采用C++编写 ...

  7. Windows上快速编译caffe CPU版本

    windows上快速安装配置Caffe的 cpu_only环境. 一:安装环境: 1.windows10: 2.Visual Studio2013: 3.Caffe版本:http://github.c ...

  8. QT库在Windows上的编译

    1.从http://www.qtcentre.org/下载QT源代码,注意是源代码.我下载到的是QT4.5.1版,文件名为qt-win-opensource-src-4.5.1.zip: 2.解压,注 ...

  9. Windows 上静态编译 Libevent 2.0.10 并实现一个简单 HTTP 服务器(无数截图)

    [文章作者:张宴 本文版本:v1.0 最后修改:2011.03.30 转载请注明原文链接:http://blog.s135.com/libevent_windows/] 本文介绍了如何在 Window ...

随机推荐

  1. A Beginner's Guide To Understanding Convolutional Neural Networks(转)

    A Beginner's Guide To Understanding Convolutional Neural Networks Introduction Convolutional neural ...

  2. CentOS网络配置详解

    转载于CentOS中文站:http://www.centoscn.com/CentOS/2015/0507/5376.html一.配置文件详解 在RHEL或者CentOS等Redhat系的Linux系 ...

  3. 开发常用小demo 整理

    pc懒加载   https://github.com/ningmengxs/Lazy_loading 元素滑动 js 效果     https://github.com/ningmengxs/elem ...

  4. 命令行启动win7系统操作部分功能

    control.exe /name microsoft.folderoptions 启动资源管理器的 文件夹属性 选项卡 control.exe /name Microsoft.AddHardware ...

  5. MongoDB-JAVA-Driver 3.2版本常用代码全整理(3) - 聚合

    MongoDB的3.x版本Java驱动相对2.x做了全新的设计,类库和使用方法上有很大区别.例如用Document替换BasicDBObject.通过Builders类构建Bson替代直接输入$命令等 ...

  6. Brn系列商城4.1正式发布,欢迎大家下载体验

    此次升级内容如下: 独立IP搜索策略 独立文件上传策略 添加退换货功能 重构支付方式 常规性修复和改进 下载地址:http://www.brnshop.com

  7. DIOCP之数据接收事件

    一.不引用编码器与解码器的情况下(ECHO的DEMO) 类TIOCPtcpclient,接收服务器的数据事件:OnRecvBuffer 类TDiocpTcpServer,接收客户端数据事件:OnRec ...

  8. Android编译环境搭建(0818-0819)

    1 在虚拟机VMware上安装64位Ubuntu14.04LTS 首先需要安装虚拟机并激活.然后新建虚拟机,选择使用下载好的Ubuntu镜像.注意需要将光驱改为自己下载的,而不是autoinst.is ...

  9. 统计学习方法 AdaBoost

    提升方法的基本思路 在概率近似正确(probably approximately correct,PAC)学习的框架中, 一个概念(一个类),如果存在一个多项式的学习算法能够学习它,并且正确率很高,那 ...

  10. C++变量的左值和右值

    变量和文字常量都有存储区,并且有相关的类型. 区别在于变量是寻址的,对于每一个变量,都有两个值与其相关联 1  它的数据值,存储在某个内存地址中.有时这个值也被称为对象的右值 文字常量和变量都可被用作 ...