爱米*阅

不是日志,不是剪切板

Chrome Js 引擎V8 windows 下编译和开发 - [技术 | Tech]

发布时间   2011-01-18 @ 20:47:00 标签    chrome javascript 引擎 C++ 编辑 | 分享 0

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://www.blogbus.com/amixyue-logs/100358122.html

作者按:

近来对 Javascript 引擎萌发兴趣,忙中偷闲,在 google code 上找到 V8 项目

编译 V8

1、windows 环境配置

svn tortoise

python 2.6.6 http://www.python.org/

scons 2.1.0 http://www.scons.org/

2、从 v8 google code project 上查看给力的文档 ,主要是 Download & Build 部分;

3、windows 下 scons 的编译参数需要修改为:

scons env="PATH:D:\Program Files\Visual Studio 2010\VC\bin;D:\Program Files\Visual Studio 2010\Common7\IDE;D:\Program Files\Visual Studio 2010\Common7\Tools,INCLUDE:D:\Program Files\Visual Studio 2010\VC\include;C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include,LIB:D:\Program Files\Visual Studio 2010\VC\lib;C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib" mode=debug sample=shell > log.txt

其中:

1)>log.txt 是为了后续查看用;

2)sample = shell;这是因为 v8 本身是 lib 或者 dll,不能独立运行,需要被嵌入到程序中,sample/*.cc 都是这个用途的;

3)mode = debug;这是 debug 模式;

4)其它好玩的参数,具体可参加 scons –help;

4、从命令行玩转 v8 shell.exe

>shell_g

把 V8 嵌入到你的程序

有爱的 V8 项目Get Started 中就有详细的介绍了。

可惜的是,这些介绍英文且面向 linux 用户,笔者折腾了半天,终于搞定 hello word 程序。

1、用你喜欢的编辑器,copy 第二段 Get Started 代码到 v8根目录/test.cpp ;[要确保 V8 根目录下有 v8_g.lib]

2、使用 VS 的命令行,执行:

>cl  /c test.cpp /TP /MTd /Od /nologo /DV8_TARGET_ARCH_IA32 /DDEBUG /Iinclude

>link /MACHINE:X86 /DEBUG /NOLOGO /OUT:test.exe v8_g.lib winmm.lib ws2_32.lib test.obj

注意

以上都是 debug 模式的参数。

折腾的点滴啊

1、先用

cl /Iinclude /Lv8_g.lib /OUT:test.ext test.cpp

米有成功;

2、猜测是编译参数问题,情急之下求助于 VS

新建 cpp empty 项目 –> add test.cpp –> properties

C/C++->Include Dirctory

Librarian –> Additional Dependencies

Librarian –> Additional Library Directories

3、编译依旧不通过;

4、重新 scons,且 >log.txt ,于是终于找到编译参数;

5、在折腾过程中,还收获了一点:Win32 下建立 Library Project,要添加 Configuration Properties->Export Named Functions

C++ 都忘记光了 TT…

分享到: