在Windows上編譯和調試CoreCLR


生成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/coreclr
C:\git>git clone https://github.com/dotnet/corefx

Demo 目錄

新建一個目錄,然后新建2個文件夾,一個取名叫runtime,一個取名叫packages.

Nuget

下載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了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM