博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Windows上编译和调试CoreCLR
阅读量:7010 次
发布时间:2019-06-28

本文共 1653 字,大约阅读时间需要 5 分钟。

生成CoreCLR - Windows篇

本文的唯一目的就是让你运行Hello World

运行环境

Window 7+

Visual studio 2015

确保C++ 工具已经被安装,默认是不安装的,所以要选择自定义模式,VS 2015 精简版不支持。

CMake

 CMake for windows,并把Cmake的目录添加到为PATH的系统变量里。

Python

下载Python for windows 并安装,并把Python的目录地址添加到Path系统变量中。

Powershell

powershell版本必须大于等于3.0,因为我用的是WIN10,默认为4.0,所以不用特别升级。

Git

新建一个目录,名字为git,当然名字随便取,放在一个你觉得适合的地方。然后在bash中执行如下命令克隆Repo.

C:\git>git clone https://github.com/dotnet/coreclrC:\git>git clone https://github.com/dotnet/corefx

Demo 目录

新建一个目录,然后新建2个文件夹,一个取名叫runtime,一个取名叫packages.

Nuget

下载 并放在一个你觉得合适的地方。

Build

进入刚刚克隆好的目录,然后执行build clean命令,系统会先安装coreclr cli,这是个很长的过程,估计整个流程全跑完要30~40分钟,所以耐心等吧。

对于CoreFx,那么就只要执行Build 就够了。

复制DLL

一张图足矣,CoreClr需要复制上面的文件,而CoreFx,只需要复制需要的,对于你这个CS文件来说需要的。文件从bin/product目录底下找。

生成EXE

使用VS2015的命令行工具,执行如下命令,当然路径什么的自己改。

csc /nostdlib /noconfig /r:runtime\mscorlib.dll /out:runtime\helloworld.exe helloworld.cs

Debug

大公告完了?没呢,没DEBUG算什么完成。

  1. 找到CoreCLR.sln这个项目(当然前提是编译过了,不然直接从GIT上下载的没这个东西),我电脑里面的目录是:D:\coreclr2\coreclr\bin\obj\Windows_NT.x64.Debug。
  2. 找到Install并设为启动项目
  3. 右键Install项目->属性->调试,设置命令为:$(SolutionDir)..\..\product\Windows_NT.$(Platform).$(Configuration)\corerun.exe,命令参数:HelloWorld.exe,工作目录为:$(SolutionDir)..\..\product\Windows_NT.$(Platform).$(Configuration),
  4. 按下F11,忽略一切阻碍!

 

 问题汇总

 ,不过这种方法并不是最好的,因为会拖慢速度,因为是从远程下载PDB。

 但是遗憾的是,我的CoreCLR启动失败了。@dudu,求教为什么会失败?

 PS:编辑于2016-5-28 ,使用Windbg进行调试时候Symbol file could not be found的问题解决方法,使用Windbg进行调试的教程请参见本文的评论,如果出现了符号未加载,那么怎么解决呢?首先在VS中的选项->调试里面 找到符号的缓存地,如果还有不清楚的,请参见本文的其他地方;设置好以后,按一下F5运行一下程序,这个时候回自动从微软的符号服务器中下载PDB文件,并缓存到此目录。

然后打开Windbg并运行此EXE文件,在窗口中输入如下命令:

.sympath D:\symbolCache;srv*c:\debugmsft*http://msdl.microsoft.com/download/symbols

然后再.restart重启就OK了。

转载地址:http://qmttl.baihongyu.com/

你可能感兴趣的文章
iOS蓝牙开发
查看>>
使用maven构建java9 service实例
查看>>
十三、Android studio环境的搭建
查看>>
ES6 系列之模板字符串
查看>>
JVM(四)垃圾回收的实现算法和执行细节
查看>>
对象解构与点操作访问究竟谁快
查看>>
Python3入门机器学习(七)- PCA
查看>>
2017阿里,百度,京东java面试+笔试大合集,这些面试题你都会吗?
查看>>
JavaScript数据结构03 - 队列
查看>>
笔记-OC运行时问题扩展
查看>>
PHPstorm 优化、设置与提速篇
查看>>
[iOS] 从 application delegate 引申三点
查看>>
深入理解Java虚拟机(一)
查看>>
Docker Nginx 静态资源部署
查看>>
DSA数字签名算法
查看>>
Mongodb Mac安装
查看>>
中间件事务码R3AC1里Block Size的含义
查看>>
实战Android 上推下拉——隐藏、显示ActionBar
查看>>
GDB 调试 Mysql 实战(二)GDB 调试打印
查看>>
Spring AOP(三) Advisor类架构
查看>>