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」。

参考资料

网页好读版