2012
May
26

網頁好讀版

必備軟體

v8 engine 使用一般的安裝方式

在 windows 編譯 c 語言,使用命令提示字元,在開始->執行->輸入「cmd」,找到 cmd 後,按右鍵,使用 Administrator 管理員身分執行程式。

在執行編譯之前,首先要加入 Python 與 scons 的指令路徑,如果你直接在 cmd 中輸入 scons or python,會得到下列的錯誤訊息「 xx is not recognized as an internal or external command」

set PATH = C:\Python27_32;C:\Python27_32\Scripts;%PATH%

set PATH = C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin;%PATH%

將下載回來的 v8 trunk中的 SConstruct 第 341 行的 「/WX」 刪除,/WX 會使得 visual studio 編譯的時候,將 warning 當成是 error 來處理,移除後就可以正常編譯了。

  1. 'all': {
  2. 'WARNINGFLAGS': ['/W3', '/WX', '/wd4351', '/wd4355', '/wd4800']
  3. },
  4.  
  5. 'all': {
  6. 'WARNINGFLAGS': ['/W3', '/wd4351', '/wd4355', '/wd4800']
  7. },

接著執行 compile 的指令, scons env 中的 visual studio 路徑要依照不同的版本而修改。

  • compile 方式 1
  1. "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
  2.  
  3. scons env="PATH:%PATH%,INCLUDE:%INCLUDE%,LIB:%LIB%" library=shared mode=release snapshot=on
  • compile 方式 2
  1. scons env="PATH:C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools,INCLUDE:C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include;C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Include;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include,LIB;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib;C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Lib;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib" mode=release library=shared snapshot=on

使用 GYP +cygwin 安裝

這個流程可以正確的編譯 v8 ,不過在我的系統中會出現 warning : 「error C2220: warning treated as error - no 'object' file generated,warning C4819: The file contains a character that cannot be represented in the current code page (950). Save the file in Unicode format to prevent data loss」

因為預設編譯的語法是有定義 -D /WX ,這個定義值,會使得 visual studio 將warning 轉成 error ,造成編譯失敗,目前我還沒找到方便一點的解決,只能用 visual studio 打開 All.sln ,再將每一個專案設定為不顯示 warning,先對專案按右鍵-> Properties-> confiuration Propertie -> c/c++ ->general ->關掉「treat warning as errors」,最後再按 visual studio 的 build 進行編譯。

錯誤訊息處理

global_intermediate\libraries.c No such file or directory

下載 third_party/cygwon

svn co http://src.chromium.org/svn/trunk/deps/third_party/cygwin@66844 third_party/cygwin

$(OutDir)/obj/global_intermediate/d8-js.cc No such file or directory

主要原因是路徑錯誤,找不到這個檔案 ,刪除錯誤的檔案,再新增正確的檔案「build\Release\obj\global_intermediate\d8-js.cc」。

參考資料

網頁好讀版