Linux Ubuntu下Google Chrome V8引擎的编译实战(原创)

时间:2021-01-09 21:58:30

Linux Ubuntu下Google Chrome V8引擎的编译实战(原创)

作者:YuChao (yuchao86@gmail.com)



大名顶顶的Chrome V8引擎大家应该都知道了,我就不废话多说,不知道的可以去GOOGLE Code搜索。
不过不得不提的是Google Chrome V8引擎的开发者拉斯巴克(Lars Bak)。他是一个编程天才,却远离计算机世界的核心,在丹麦为Google工作,
这个工作地方是一个边远的农场,环境很优美。


在编译之前先看一下我的机器环境:
1.Linux yuchao-Latitude-E5410 2.6.35-22-generic #33-Ubuntu SMP Sun Sep 19 20:34:50 UTC 2010 i686 GNU/Linux
2.gcc (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5
3.GNU Make 3.81 这个程序创建为 i686-pc-linux-gnu
4.GNU ld (GNU Binutils for Ubuntu) 2.20.51-system.20100908
5.svn,版本 1.6.12 (r955767)
   编译于 Mar 23 2011,12:56:23
6.Python 2.6.6
7.SCons by Steven Knight et al.:
script: v2.0.0.final.0.r5023, 2010/06/14 22:05:46, by scons on scons-dev
engine: v2.0.0.final.0.r5023, 2010/06/14 22:05:46, by scons on scons-dev
特别说明:SCons 是一个用 Python 语言编写的类似于 make 工具的程序。与 make 工具相比较,SCons 的配置文件更加简单清晰明了,
除此之外,它还有许多的优点。本文将简单介绍如何在软件开发项目中使用 SCons,通过本文,读者可以学习到如何使用 SCons 来建造自己的程序项目。


如下是编译步骤:
1.用如下命令得到v8源代码:
svn checkout http://v8.googlecode.com/svn/trunk/ v8


2.进入源代码目录,使用如下命令生成动态连接库,如果要编译成为debug模式的版本,加参数mode=debug:
scons mode=debug library=shared snapshot=on
3.如果要编译成为shell解释模式,加参数sample=shell,命令如下:
 scons sample=shell
4.如果要编译为开发者版本,使用如下命令:
 scons d8
5.编译完成后你可以得到如下文件:
libv8preparser_g.so libv8_g.so shell  d8  


如果你没有看到如下几个配置文件,说明你没有配置成功或者编译有误。
测试编译结果:
使用目录下面的helloworld.cc的测试文件
#pragma comment(lib,"libv8.a")
#include "include/v8.h"
using namespace v8;


int main(int argc, char *argv[])
{
    String source = String::New("'Hello'+',world I'm YuChao from SINA'");
    Script script = Script::Compile(source);
    
    Value result = script->Run();
    String::AsciiValue ascii(result);
    printf("%s\n",*ascii);


    return 0;
}
最后你可以看到输出:Hello world I'm YuChao from SINA
的输出,说明你的编译是可以运行的。
另外设计一个js脚本,使用如下命令执行js脚本:
  shell [options] -e string
    execute string in V8
  shell [options] file1 file2 ... filek
    run JavaScript scripts in file1, file2, ..., filek
  shell [options]
  shell [options] --shell [file1 file2 ... filek]
    run an interactive JavaScript shell
  d8 [options] file1 file2 ... filek
  d8 [options]
  d8 [options] --shell [file1 file2 ... filek]
    run the new debugging shell
你同样可以测试编译是否成功.




windows下的编译过程请参考如下网址:
http://code.google.com/p/v8/wiki/BuildingOnWindows