zoukankan      html  css  js  c++  java
  • Windows上成功编译CoreCLR源代码

    昨天得知微软在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.0DIA SDKidldia2.idl': 
    No such file or directory

    到 C:Program Files (x86)Microsoft Visual Studio 12.0DIA 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。

    DIA SDK文件夹

    这次终于build成功了!可以在binariesProductx64debug文件夹中看到编译的成果。

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

  • 相关阅读:
    Android——继续深造——从安装Android Studio 2.0开始(详)
    PHP——安装wampserver丢失MSVCR110.dll
    Marza Gift for GDC 2016
    Retrieve OpenGL Context from Qt 5.5 on OSX
    Space Time Varying Color Palette
    Screen Space Depth Varying Glow based on Heat Diffusion
    Visualization of Detail Point Set by Local Algebraic Sphere Fitting
    Glass Dragon
    Jump Flood Algorithms for Centroidal Voronoi Tessellation
    京都之行
  • 原文地址:https://www.cnblogs.com/dudu/p/build_coreclr_20150205.html
Copyright © 2011-2022 走看看