博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Google V8引擎编译记录
阅读量:6877 次
发布时间:2019-06-26

本文共 1637 字,大约阅读时间需要 5 分钟。

准备工作


1.Python 2.6.x,编译V8必备,官方网站被墙了,不过搜索一下,很多下载,包括天空软件园,华军等都有。

2.Scons,与Make工具类似的编译工具,最新版本是2.1.0,有下载。本身之前的V8版本是可以不用这个的,在从SVN迁出来的源代码下tools文件夹里有Visual Studio的Project,不过最新的版本取消了,根据官方网站的Build Guide,推荐的是使用Scons来编译V8(其实这个工具很方便的,比Make直观的多,也简单的多)。

3.TortoiseSVN,这个就不说了,相信基本都有安装,下载。

4.V8Engine源代码,从Google的SVN当中Check Out出来,最新版本。

 

编译


注意:先安装Python,再安装Scons,安装了Python后,记得设置环境变量,否则无法正常通过编译。Scons也需要设置环境变量,它的目录是Python安装目录下的Scripts。

1.启动CMD控制台,导航到下载的v8源代码根目录,就是有一个SConstruct文件(Scons就是根据它来编译程序的)的目录。

2.编译参数(注意要修改Visual Studio的安装目录):

scons arch=ia32 env="PATH:F:\Program Files\Microsoft Visual Studio 10.0\VC\bin;F:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE;F:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools,INCLUDE:F:\Program Files\Microsoft Visual Studio 10.0\VC\include;C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include,LIB:F:\Program Files\Microsoft Visual Studio 10.0\VC\lib;C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib" libary=shared mode=release msvcrt=shared –j4

3.编译完成后,会在根目录生产v8.lib,v8preparser.lib,在其他程序中使用V8需要用到这两个库文件以及v8的头文件。

 

附:在Javascript.NET中使用V8进行编译

首先还是从下载最新版本的源代码(v4.0)。

解压后,用VS打开,先移除对老版本V8(v2.6)的引用(直接删除解决方案中的V8项目即可)。

之后,在根目录新建一个Include和Lib文件夹,把V8的头文件放到Include当中,生产的两个lib文件放到Lib当中。

打开项目属性,在配置属性-C/C++-常规中的附加包含目录中,添加自己建立的Include文件夹。

在连接器-输入中的附加依赖项中填入v8.lib,v8preparser.lib的完整路径(可以用宏来填写)。

最后打开JavascriptContext.cpp,在SetParameter和Run(两个重载)三个函数中加入以下代码(进入函数第一行添加):

v8::ResourceConstraints rc;int limit = (int)&rc - 500000;rc.set_stack_limit((uint32_t *)(limit));v8::SetResourceConstraints(&rc);

 

这几行代码主要是防止出现,尝试访问损坏的内存balabalabala的错误。

最后,编译即可。

转载于:https://www.cnblogs.com/sweetwxh/archive/2011/09/11/2173596.html

你可能感兴趣的文章
定时器
查看>>
js 字符串拼接 html 累加 html 叠加
查看>>
Android启动页面实现版本检查更新
查看>>
如何在ASP.NET MVC 中获取当前URL、controller、action
查看>>
Freemarket语法
查看>>
Windows7系统中怎么Ping端口?利用telnet命令Ping 端口的方法
查看>>
摩客、墨刀、axure,原型设计工具哪个好用?
查看>>
Flask
查看>>
正确使用lock 关键字
查看>>
虚拟内存管理
查看>>
iOS 10 之后权限设置
查看>>
c++ 函数指针
查看>>
三种vsftp安装方式
查看>>
angular validation 使用总结
查看>>
uwsgi ini 设置
查看>>
node.js中通过stream模块实现自定义流
查看>>
WPF中Image控件的Source属性的设置
查看>>
体绘制(Volume Rendering)概述之4:光线投射算法(Ray Casting)实现流程和代码(基于CPU的实现)...
查看>>
Python实践之(七)逻辑回归(Logistic Regression)
查看>>
PAT (Advanced Level) 1107. Social Clusters (30)
查看>>