精华内容
下载资源
问答
  • v8编译缓存 v8-compile-cache附加了一个require钩子,以使用来加快实例化时间。 “代码缓存”是V8进行的解析和编译工作。 中引入了利用V8生成/使用此缓存的。 用法 添加依赖项: $ npm install --save v8-compile...
  • V8编译结果X64

    2018-03-09 21:44:48
    V8 lib - result of "fetch V8" https://chromium.googlesource.com/chromium/tools/depot_tools.git 分两个压缩,此为编译结果
  • cygwin
  • chrome V8 编译实录

    2019-07-25 17:42:30
    chrome V8作为最好的Javascript解释器之一,利用它做基于JS语言的小程序想必很有趣。经过查阅相关资源(详见随笔底部)及通宵尝试,终于编译成功并实现第一个小程序。 有一点想不通的是,为什么google仅提供源代码...

        chrome V8作为最好的Javascript解释器之一,利用它做基于JS语言的小程序想必很有趣。经过查阅相关资源(详见随笔底部)及通宵尝试,终于编译成功并实现第一个小程序。

        有一点想不通的是,为什么google仅提供源代码,而不提供已编译好的lib、dll文件呢?本人并不喜欢这么复杂繁琐的编译过程。

        本文仅将自己的理解、编译过程和报错问题分享出来,防止网友再走同样的冤枉路,引用文章已在下面列出,有不当地方欢迎高手拍砖。

        目前,在Windows有两种编译方式:

            1. 通过 GYP(Generate Your Project) 生成项目文件(sln)的方式,也是google推荐的方式,这样可通过Visual Studio查看编译不同项目;

            2. 通过 Scons build的方式,个人觉得它更方便,但google称未来将不再使用它。

       

        第一部分:搭建环境

        这里仅分享Windows平台下的环境配置:

            1. Visual Studio IDE。原理上它支持05/08以及2010,但在2010下GYP方式我未成功,可能由于它对项目文件进行转换造成的吧,原因不详,请高手指点。总之建议用VS2008,因为官网给出08下的命令。请大家一定看清是否安装了VS对VC++的支持,最初编译失败就因为本机仅安装对C#的支持造成的。另外要安装SP1包。

            (下面会用到SVN和GIT,未安装的朋友需要装一下:tortoriseSVN  Git

            2. Python环境。最初装3.2,编译过程报错,我想可能由于3.2安装后文件夹为Python32有关,所以最后改为Python 2.7,成功。

                可以通过Python官网下载安装包,也可以通过SVN checkout一份,地址为 svn co http://src.chromium.org/svn/trunk/tools/third_party/python_26@89111 third_party/python_26

                最后在环境变量Path上添加 C:\Python27;C:\Python27\Scripts ,我的目录为C盘。

            3. GYP或Scons。V8官网已经建议安装GYP,并利用其生成的项目文件进行编译,由于我本机环境是Visual Studio 2010,该方式下总是报错缺少文件,所以又安装了Scons,并编译成功。

                关于GYP,V8官网给的SVN命令 svn co http://gyp.googlecode.com/svn/trunk build/gyp 总是checkout不下来,提示URL链接错误,后发现googlecode.com访问不了,本人随后在git上下载了一份 https://github.com/martine/gyp

               关于Scons,本人觉得它确实是编译C/C++项目较好的工具之一,使用方便,地址为 http://www.scons.org/download.php ,但V8官网已经在推荐google自己的GYP,另外编译过程也加了提示。

     

            4. cygwin。必装软件,遇到同上的问题。V8官网提供的SVN命令 svn co http://src.chromium.org/svn/trunk/deps/third_party/cygwin@66844 third_party/cygwin 总是checkout不成功,后在cygwin官网下了一份,发现其国内镜像首选是网易开源镜像站,赞一个!!

            5. 下载V8引擎源代码。本人通过官网提供 GIT 地址 git clone git://github.com/v8/v8.git v8 && cd v8 成功下载。

                现在的源代码都是不提供项目文件sln,如果想用VS打开,就必须用GYP生成。

     

        第二部分:编译过程

            一、若使用GYP,那么首先要使用Python安装,在命令行下转到GYP所在目录,键入命令 python setup.py install  安装,完成后Python会增加scripts目录。

                 命令行转到V8所在目录,执行 python build\gyp_v8 ,将会在该目录下生成All.sln项目文件。

                 最后使用VS编译源代码,可以使用命令行 "c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com"/build Release build\All.sln ,也可以用IDE打开sln项目文件编译生成。

                 郁闷的是,在VS2010下需要进行转换,在命令行下会报如下提示。郁闷许久!!

            二、使用Scons是我最后的选择,感觉也非常方便。

                若未设置环境变量则需要加上 set PATH=C:\Python27;C:\Python27\Scripts;%PATH%

                 设置运行VC++2010的环境 "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"

                 命令行下转到V8所在目录,调用scons命令进行编译

                         动态模式   scons mode=release library=shared msvcrt=shared env="PATH:%PATH%,LIB:%LIB%,INCLUDE:%INCLUDE%" d8

                                       scons mode=debug library=shared msvcrt=shared env="PATH:%PATH%,LIB:%LIB%,INCLUDE:%INCLUDE%" d8          

                         使用静态模式 library=static 会产生较大lib文件(>200M),而且编译时间长,总出错。。

                 等待编译...最后在V8根目录将会看到生成的V8.lib V8.dll等文件(如果中间出错中止,请尝试再次编译,我遇到多次,但再次编译就没问题了)

            注:国外一篇博客中高手直接将所有功能做了打包,下载后执行脚本直接可生成dll文件,亲测正确!地址见 参考文章6。

       

        第三部分:第一个V8程序

        编译成功后,参考官网的Hello World程序,检验一下编译成果。

        1. VS2010下,新建Win32 Console Application,添加对v8.h 和v8.lib的引入。

     

        2. 贴入代码片段

        注意别忘记引入 WSock32.lib、ws2_32.lib、winmm.lib  三个lib,否则会报错滴!!

    View Code
     1 #include <v8.h>
     2 #pragma comment(lib,"WSock32.lib")
     3 #pragma comment(lib,"ws2_32.lib")
     4 #pragma comment(lib,"winmm.lib")
     5 using namespace v8;
     6 
     7 int _tmain(int argc, _TCHAR* argv[]){
     8     // Create a stack-allocated handle scope.
     9     HandleScope handle_scope;
    10     int m;
    11     // Create a new context.
    12     Handle<Context> context = Context::New();
    13     // Enter the created context for compiling and
    14     // running the hello world script.
    15     Context::Scope context_scope(context);
    16     // Create a string containing the JavaScript source code.
    17     Handle<String> source = String::New("'Hello' + ', World!'");
    18     // Compile the source code.
    19     Handle<Script> script = Script::Compile(source);
    20     // Run the script to get the result.
    21     Handle<Value> result = script->Run();
    22     // Convert the result to an ASCII string and print it.
    23     String::AsciiValue ascii(result);
    24     printf("%s\n", *ascii);
    25     scanf("%d",m);
    26 
    27     return 0;
    28 }

        3. 看到控制台输出 Hello World! 搞定

     

        参考文章:

            1. http://code.google.com/p/v8/wiki/BuildingWithGYP

            2. http://www.cnblogs.com/meteoric_cry/archive/2011/03/14/1983294.html

            3. http://www.cnblogs.com/foxhengxing/archive/2011/07/11/2103430.html

            4. http://funnylog.kr/351

            5. http://blog.stevenreid.co.uk/2011/06/25/build-v8-on-windows-7/

            6. http://blog.carsten.orthbandt.de/?p=132

     

    转载于:https://www.cnblogs.com/jixiaohui/archive/2012/08/13/V8-build.html

    展开全文
  • v8编译太简单了

    千次阅读 2020-07-28 21:54:19
    借助nodejs编译生成的libnode就包括了v8全部函数。 具体步骤: 1、下载nodejs,解压 2、./configure --shared 3、make 找到libnode.so大功告成!如果想生成纯净的libv8,只要用下面的库手动生成一下即可: g++ ...

    借助nodejs编译生成的libnode就包括了v8全部函数。

    具体步骤:

    1、下载nodejs,解压

    2、./configure --shared

    3、make 

    找到libnode.so大功告成!如果想生成纯净的libv8,只要用下面的库手动生成一下即可:

    g++ -o libv8.so -shared -pthread -rdynamic -m64 -Wl,-z,relro -Wl,-z,now -pt
    hread  -Wl,--whole-archive *.a -Wl,--no-whole-archive -lm -ldl

    *.a代表下面8个库(再加上libicudata.a  libicui18n.a  libicustubdata.a  libicuucx.a四个库)

     libv8_base_without_compiler.a
     libv8_compiler.a
     libv8_initializers.a
     libv8_libbase.a
     libv8_libplatform.a
     libv8_libsampler.a
     libv8_snapshot.a
     libv8_zlib.a
    还有更简单的办法,去https://github.com/patr0nus/libnode/releases下载,不过是静态编译的。

    展开全文
  • Google V8编译

    2021-03-29 13:19:12
    一、编译环境 最初是用centos7 镜像docker下,进行,最终总是有一个文件编译失败,并且未报明显的错误。 后转用VMware + ubuntu-16.04.3-desktop-amd64 二、可以直接使用的lib库 如果不想去感受繁琐的编译过程, ...

    一、编译环境

    最初是用centos7 镜像docker下,进行,最终总是有一个文件编译失败,并且未报明显的错误。
    后转用
    VMware + ubuntu-16.04.3-desktop-amd64

    二、可以直接使用的lib库

    如果不想去感受繁琐的编译过程,
    可以尝试直接使用,附件中,我编译好的lib库
    请查看附件:Googelv8(include+libs).zip

    三、编译步骤

    1、安装depot_tools

    参考:https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up

    1. git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
    2. $ export PATH=/path/to/depot_tools:$PATH

    2、下载V8代码

    https://v8.dev/docs/source-code#using-git

    1. fetch v8

    3、编译静态库

    1. Create a build configuration using the helper script:
    2. tools/dev/v8gen.py x64.release.sample
    3.  
    4. You can inspect and manually edit the build configuration by running:
    5. gn args out.gn/x64.release.sample
    6.  
    7. Build the static library on a Linux 64 system:
    8. ninja -C out.gn/x64.release.sample v8_monolith

    4、编译sample代码

    1. g++ -I. -Iinclude samples/hello-world.cc -o hello_world -lv8_monolith -Lout.gn/x64.release.sample/obj/ -pthread -std=c++14 -DV8_COMPRESS_POINTERS

    执行结果:

    obamayang@obamayang-virtual-machine:~/workspace/v8$ ./hello_world 
    1. Hello, World!
    2. 3 + 4 = 7

    四、一些编译帮助

    1、 GLIBC_2.18 not found 问题

    1. strings /usr/lib64/libc.so.6 | grep GLIBC_2.1
    2.  
    3. wget http://mirrors.ustc.edu.cn/gnu/libc/glibc-2.18.tar.gz
    4. tar zxf glibc-2.18.tar.gz
    5. cd glibc-2.18/
    6. mkdir build
    7. cd build/
    8. ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
    9. make -j4
    10. make install

    2、 GLIBCXX_3.4.26’ not found问题

    1. 根据提示查看对应的路径
    2. strings /usr/lib64/libstdc++.so.6|grep GLIBCXX
    3. 发现缺少需要的3.4.26,3.4.20,3.4.21版本
    4.  
    5. 查看当前系统中所有libstdc++.so的位置,发现当前最新的动态库为libstdc++.so.6.0.27
    6. sudo find / -name "libstdc++.so*"
    7. 将新版本动态库复制到/usr/lib64中(注意自己libstdc++.so.6.0.xx的路径)
    8. cp /home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.27 /usr/lib64
    9. 删除老版本动态库(以下操作在/usr/lib64目录下)
    10. sudo rm -rf libstdc++.so.6
    11. 建立新链接(权限不够加上sudo)
    12. ln -s libstdc++.so.6.0.27 libstdc++.so.6
    13. 再次查看当前动态库版本
    14. strings /usr/lib64/libstdc++.so.6 | grep GLIBC
    展开全文
  • V8编译库-版本3.15.9

    2018-03-12 16:34:08
    V8-3.15.9版本 引擎通过VS2010编译。内涵lib及include。 用于-ethminer-1.2.2版本。
  • 真正v8编译100%成功版

    2019-12-12 17:21:36
    编译v8的时候遇到啥子几把古怪的问题都有 这是按照网上编的 估计是代理的问题,在香港的服务器就没有这种问题 公司本身内网能上谷歌,但是就是他吗的不能编 而且在公司不能设代理才是最几把坑人的地方,路由器...

    编译v8的时候遇到啥子几把古怪的问题都有

    这是按照网上编的

    估计是代理的问题,在香港的服务器就没有这种问题

    公司本身内网能上谷歌,但是就是他吗的不能编

    而且在公司不能设代理才是最几把坑人的地方,路由器只让你走两端口80,443,要走其他端口还得用公司的电脑,而我又不想用。

    自己瞎几把捣鼓源码倒是能下下来,

    编的时候

    这只是其中的一个问题,还有很多几把问题,在香港服务器上就没有!

    下面直接说解决方法吧!

    1.下源码

    2.还是把这些装上

    git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
    echo 'export PATH=$PATH:"/path/to/depot_tools"' >> ~/.bashrc
    还是把这个鬼东西给装上把

    然后

    sudo apt-get install ninja-build || brew install ninja

    3.把香港服务器用通常方法弄好v8目录里面的third_party,buildtools,build

    弄到你本地的ubuntu里面就可以

    用下面的100%编了

    https://bbs.pediy.com/thread-252812.htm

    展开全文
  • VS2019谷歌V8引擎8.2版本,编译好的Release版DLL和LIB,和测试demo 下载即可使用。 window版本 已经包含include,文件齐全。
  • 折腾了4天,终于用vs2017编译出来了,不过为啥最新版的v8引擎的lib这么小呢,debug的v8_base.lib才70多MB,不过测试helloword可用。编译日期18年10月9号。32位和64位的lib库。
  • V8 编译及使用-windows

    2014-03-27 16:56:29
    进军智能家居的第一步: 最新想搞node js 开发,它使用的是V8的引擎。nodejs入门后就看是从V8入手想深入的来学习一些...V8是使用C++开发,Gyp编译。 官方文档: http://code.google.com/p/v8/wiki/BuildingWithG
  • 环境:window os 、window sdk 10、vs2017 方法:官网提供的方法 https://github.com/v8/v8/wiki/Building-from-Source ...解决:gclient sync 的时候没有同步生成代编译所需的文件 ,文件夹下面\v8...
  • vs2013 v8编译

    2017-12-26 09:12:49
    最新v8,只能在vs2015编译(在官网看了资料,新版本v8/chrome使用的c++11特性只能用vs2015编译) vs2015 vc需要的dll有近50个,发布不太方便,所以采用vs2013update5编译   版本 发布日期   ...
  • 查看v8编译js生成的机器代码

    千次阅读 2015-12-28 12:08:55
    1、编译v8使用ENABLE_DISASSEMBLER预编译宏 2、d8 --print-code add.js 3、相关命令 --print-code: prints out code to stdout.--print-code-stubs: prints code stubs.--print-opt-code: prints optimized code.-...
  • Linux上编译V8

    千次阅读 2018-10-12 08:47:33
    Linux上编译V8 好吧~~看到这篇文章你也许会问: 编译一个有详细文档的V8有什么难的,你还写个东西?当翻译么? 嗯。。。如果你真的这样认为,那我只能告诉你:朋友你太天真了。v8的文档是个梗好吧。。我都没想到...
  • 首先进入v8的github地址 https://github.com/v8/v8 从图中可以看到 首先需要我们下载这个工具 那就先点进去 记得科学上网不然是进不去 的 点击这个就下载了 会下载下来depot_tools的这个工具 然后解压...
  • 如题。本人采用一种极端的编译方式,成功编译了V8。目前只有win32-x86一种可用。我的VC编译器:https://www.lanzous.com/ia484de。下次我会在博客记录我的V8编译之旅。
  • V8 js 引擎编译

    2020-07-14 16:56:29
    科普 | 编译 V8 源码 UBUNTU14.04编译V8 JS引擎V8源码解析之对象第四篇(基于V8 0.1.5) JS引擎V8源码解析之对象第一篇(基于V8 0.1.5) UBUNTU16 64位下编译LINPHONE-ANDROID JS引擎V8源码解析之MAP对象上篇...
  • 编译V8

    2016-10-06 19:32:40
    http://www.jb51.net/article/70608.htm1.下载V8源码: https://github.com/objcode/v8之所以没有下载git上的库,是因为按照网上搜的教程,生成VS项目的过程太复杂,要下载很多依赖项,太麻烦。使用svn上的库相对...
  • google-v8编译

    千次阅读 2016-04-26 14:08:14
    说明:v8 third_party 和depot_tools svn root目录:  https://src.chromium.org/svn/trunk/tools/ 如果在编译过程中有什么问题,也可以给我消息,我会尽快回复,如发现错误,也请指正。欢迎共同学习!QQ...
  • 编译V8引擎

    千次阅读 2018-04-19 14:35:05
    由于项目项目中最近用到v8引擎,项目由sparkmonkey切换到v8后,性能有了较大的提升,不过美中不足的是,启动时间较长,查看v8相关的文档,可以使用snapshot快照技术加快启动速度,因此觉得自己编译v8,加速启动。...
  • 最新v8编译以及使用

    2014-08-20 11:03:59
    编译过程可参考 http://qbaok.blog.163.com/blog/static/101292652012311113126357/ 但是有个注意的地方,编译v8工程时,需要将
  • 原创出处:连载《Chrome V8 原理讲解》第三篇 看V8编译流程,学习词法分析 - 安全客,安全资讯平台 本篇内容 本次是第三篇,讲解V8中词法分析(scanner)的实现,这中间涉及到几个重要的数据结构和一些相关的编译...
  • V8编译 记一下

    2018-08-24 15:20:39
    1.下载V8源代码 官网:svn checkout http://v8.googlecode.com/svn/trunkE:\v8 或者从其它地方下载。 2.下载python2.6 官网:svn checkout ...
  • 看到这篇文章的时候,如果你也向我一样曾经对编译v8感到迷茫,不知道怎么才能正确编译好的话,我希望这篇文章能够帮助你实现v8引擎编译并且使用。我研究了两天时间,终于成功编译v8代码(WIN10环境),发现编译v8...
  • 文章目录前言一、编译器和解释器二、V8执行JavaScript代码过程1.引入库2.读入数据总结 前言 相信大家对Babel已经不陌生了,Babel充斥在我们代码中的每个角落。比如:jsx转化成js,es6转化成es5… 一切需要代码转化...
  • Windows 10环境下V8引擎的编译方法

    千次阅读 2020-05-13 09:37:56
    再扯下去就扯远了,这次主要是记录一下编译方法。 先说明一下环境,我用的是Windows 10,然后电脑上已经有了之前学C++的时候装的VS 2017 Community,也有一个anaconda的Python 3.7,以及很基础的Git。其中VS还是很...
  • 已经编译好的dll,头文件,pdb,并附有demo,vs2015测试通过
  • chrome v8 编译实录

    2013-02-28 15:19:08
     chrome V8作为最好的Javascript解释器之一,利用它做基于JS语言的小程序想必很有趣。经过查阅相关资源(详见随笔底部)及通宵尝试,终于编译成功并实现第一个小程序。  有一点想不通的是,为什么google仅提供源...
  • windows环境下google v8引擎的编译

    千次阅读 2018-06-19 15:06:36
    写在前面:如果你电脑还没有装VS的话,我强烈建议你在装VS的时候就选择装在默认路径C盘,不要选择其他盘,而且接下来的depot_tools的路径和拉取的V8源码的路径最好都选择在C盘,具体原因在最后说明!! 弄这个玩意儿...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,610
精华内容 10,644
关键字:

v8编译