精华内容
下载资源
问答
  • v8编译

    千次阅读 2010-08-09 12:12:00
    http://code.google.com/apis/v8/build.htmlhttp://code.google.com/p/v8/wiki/BuildingOnWindows环境:64位Windows7、vs20081、准备:三个工具Subversion、Python、SCons。设置环境变量保证在cmd中运行 python --...

    http://code.google.com/apis/v8/build.html

    http://code.google.com/p/v8/wiki/BuildingOnWindows

    环境:64位Windows7、vs2008

    1、准备:三个工具Subversion、Python、SCons。

    设置环境变量保证在cmd中运行 python --version、scons --version、svn --version 三个命令后能看到相应的版本号。

    2、下载v8

    svn checkout http://v8.googlecode.com/svn/trunk/  v8

    3、编译v8

    进入到v8目录,然后运行:

    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

    也可以不在v8目录里,这时要运行:

    scons –C <v8的路径> env=”….”;

    vs2008在64位win7里被分裂开了所以这个命令比32的麻烦。

    /v8/obj文件夹里就是生成的文件

     

    4、一个例子hello_world

    v8文件夹里建一个hello_world.cpp

     

    int main(int argc, char* argv[]) {
      // Create a string containing the JavaScript source code.
      String source = String::New("'Hello' + ', World'");
      // Compile the source code.
      Script script = Script::Compile(source);
     
      // Run the script to get the result.
      Value result = script->Run();
      // Convert the result to an ASCII string and print it.
      String::AsciiValue ascii(result);
      printf("%s/n", *ascii);
      return 0;
    }

     

    没想到编译这么简单的一段代码却出了问题,用了一晚上外加一上午的时间搞定了问题。

    一开始我是按照网站上说的运行    cl /Iinclude hello_world.cpp v8.lib

    结果是:

    用于 x64 的 Microsoft (R) C/C++ 优化编译器 15.00.30729.01 版
    版权所有(C) Microsoft Corporation。保留所有权利。
    hello_world.cpp
    Microsoft (R) Incremental Linker Version 9.00.30729.01
    Copyright (C) Microsoft Corporation.  All rights reserved.
    /out:hello_world.exe
    hello_world.obj
    v8.lib
    hello_world.obj : error LNK2019: 无法解析的外部符号 "public: __cdecl v8::HandleS
    cope::~HandleScope(void)" (??1HandleScope@v8@@QEAA@XZ),该符号在函数 main 中被引
    。。。。。。。。。。。。
    hello_world.exe : fatal error LNK1120: 11 个无法解析的外部命令

     

    这个错误的原因是用错了编译器!!!v8目录里的v8.lib是个32位的库,所以应该用“Visual Studio 2008 命令提示”,而我之前用的是“Visual Studio 2008 x64 Win64 命令提示”和“Visual Studio 2008 x64 兼容工具命令提示”。

    运行“Visual Studio 2008 命令提示”,然后进入v8目录,运行cl /Iinclude hello_world.cpp v8.lib

    结果:

     

    用于 80x86 的 Microsoft (R) 32 位 C/C++ 优化编译器 15.00.30729.01 版
    版权所有(C) Microsoft Corporation。保留所有权利。
    hello_world.cpp
    Microsoft (R) Incremental Linker Version 9.00.30729.01
    Copyright (C) Microsoft Corporation.  All rights reserved.
    /out:hello_world.exe
    hello_world.obj
    v8.lib
    v8.lib(api.obj) : 找到 MSIL .netmodule 或使用 /GL 编译的模块;正在使用 /LTCG 重
    新启动链接;将 /LTCG 添加到链接命令行以改进链接器性能
    Microsoft (R) Incremental Linker Version 9.00.30729.01
    Copyright (C) Microsoft Corporation.  All rights reserved.
    /out:hello_world.exe
    hello_world.obj
    v8.lib
    v8.lib(platform-win32.obj) : error LNK2001: 无法解析的外部符号 __imp__accept@12
    v8.lib(platform-win32.obj) : error LNK2001: 无法解析的外部符号 __imp__listen@8
    v8.lib(platform-win32.obj) : error LNK2001: 无法解析的外部符号 __imp__send@16
    。。。。。。。。。。。。。。。。。。
    v8.lib(platform-win32.obj) : error LNK2001: 无法解析的外部符号 __imp__connect@12
    hello_world.exe : fatal error LNK1120: 19 个无法解析的外部命令

    错误的原因是没有把"ws2_32.lib"、("WSock32.lib")、"Winmm.lib"加进来。

    解决办法:

    在hello_world.cpp里加入

    #pragma comment(lib,"ws2_32.lib")
    #pragma comment(lib,"WSock32.lib")
    #pragma comment(lib,"Winmm.lib")
    #include <v8.h>
    using namespace v8;

    然后运行 cl /Iinclude hello_world.cpp v8.lib

    用于 80x86 的 Microsoft (R) 32 位 C/C++ 优化编译器 15.00.30729.01 版
    版权所有(C) Microsoft Corporation。保留所有权利。
    hello_world.cpp
    Microsoft (R) Incremental Linker Version 9.00.30729.01
    Copyright (C) Microsoft Corporation.  All rights reserved.
    /out:hello_world.exe
    hello_world.obj
    v8.lib
    v8.lib(api.obj) : 找到 MSIL .netmodule 或使用 /GL 编译的模块;正在使用 /LTCG 重
    新启动链接;将 /LTCG 添加到链接命令行以改进链接器性能
    Microsoft (R) Incremental Linker Version 9.00.30729.01
    Copyright (C) Microsoft Corporation.  All rights reserved.
    /out:hello_world.exe
    hello_world.obj
    v8.lib
    正在生成代码
    已完成代码的生成

     

    这回Ok了 :P

    也可以不用改 hello_world.cpp ,直接运行    v8>cl /Iinclude hello_world.cpp v8.lib Winmm.lib WSock32.lib ws2_32.lib

    运行v8目录下的 hello_world.exe,输出:Hello, World!

    大功告成 :)

     

     

     

     

     

    http://lch361.spaces.live.com/blog/cns!2C632B54B8D9AB49!435.entry

    展开全文
  • chrome V8 编译实录windows下 V8 JS引擎 编译 2016-06-30...

    • chrome V8 编译实录
    • windows下 V8 JS引擎 编译 2016-06-30

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

    https://blog.csdn.net/herorazor/article/details/51792793



    git clone -ccore.deltaBaseCacheLimit=2g --progress git://github.com/v8/v8.git D:\\google\\v8_build;cwd=D:\\google\\v8_build

    git clone -c core.deltaBaseCacheLimit=2g --progress  https://github.com/zcbenz/chromium.gitD:\\google\\chromium_build; cwd=D:\\google\\chromium_build

     



    展开全文
  • 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
    展开全文
  • chrome V8 编译实录

    千次阅读 2013-08-23 14:18:48
    chrome V8 编译实录  chrome V8作为最好的Javascript解释器之一,利用它做基于JS语言的小程序想必很有趣。经过查阅相关资源(详见随笔底部)及通宵尝试,终于编译成功并实现第一个小程序。  有一点想不通的是...

    chrome V8 编译实录

        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 Releasebuild\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
    复制代码

        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

     

    展开全文
  • 其中 1a28b1c 修复了v8编译中的错误。其余4个commits改善了在Unity中的调试流程。改善包括: - 支持<code>.cjs文件扩展名,不再需要<code>.js.txt - 支持同窗口下调试和更改源文件 - 在<code>.cjs文件被...
  • ARM64 v8编译

    2021-01-12 10:16:44
    set(ANDROID_ABI arm64-v8a) set(ANDROID_SYSROOT_ABI arm64) set(CMAKE_SYSTEM_PROCESSOR aarch64) set(ANDROID_TOOLCHAIN_NAME aarch64-linux-android) set(ANDROID_TOOLCHAIN_ROOT ${ANDROID_TOOLCHAIN_NAME}) ...
  • vs2013 v8编译

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

    2018-08-24 15:20:39
    1.下载V8源代码 官网:svn checkout http://v8.googlecode.com/svn/trunkE:\v8 或者从其它地方下载。 2.下载python2.6 官网:svn checkout ...
  • v8编译太简单了

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

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

    2010-07-13 17:17:00
    1、下载v8代码。 2、python工具包 3、打开v8代码下面的vs project 工程 4、编译
  • chrome v8 编译实录

    2013-02-28 15:19:08
     chrome V8作为最好的Javascript解释器之一,利用它做基于JS语言的小程序想必很有趣。经过查阅相关资源(详见随笔底部)及通宵尝试,终于编译成功并实现第一个小程序。  有一点想不通的是,为什么google仅提供源...
  • 环境:window os 、window sdk 10、vs2017 方法:官网提供的方法 https://github.com/v8/v8/wiki/Building-from-Source ...解决:gclient sync 的时候没有同步生成代编译所需的文件 ,文件夹下面\v8...
  • 最新v8编译以及使用

    2014-08-20 11:03:59
    编译过程可参考 http://qbaok.blog.163.com/blog/static/101292652012311113126357/ 但是有个注意的地方,编译v8工程时,需要将
  • 真正v8编译100%成功版

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

    2013-02-17 18:11:00
    1 -- 使用scons编译代码 scons是一个用 Python 语言编写的类似于 ...scons依赖于python2.x,所以在开始编译v8之前需要安装好python2.x以及socns。 在这里下载scons:http://nchc.dl.sourceforge.net/project/scons...
  • V8 编译及使用-windows

    2014-03-27 16:56:29
    进军智能家居的第一步: 最新想搞node js 开发,它使用的是V8的引擎。nodejs入门后就看是从V8入手想深入的来学习一些...V8是使用C++开发,Gyp编译。 官方文档: http://code.google.com/p/v8/wiki/BuildingWithG
  • 查看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.-...
  • 最新 Google V8 编译 (2015-12-09)

    千次阅读 2015-12-12 16:59:22
    How to Download and Build V8 请注意,基于arm系统的最低要求ARMv6 + VFP2。 V8 JavaScript Engine V8 is Google’s open source JavaScript engine. V8 implements ECMAScript as specified in ECMA-262. V8...
  • V8编译的大致过程

    千次阅读 2008-09-27 15:13:00
    V8官方的例子中,有一段这样的代码:int main(int argc, char* argv[]) { // Create a string containing the JavaScript source code. String source = String::New("Hello + , World"); /...
  • 如果 大家编译顺利,通过 以上 过程,即可顺利生成 All.sln 工程。然后 ,通过如下 Helloworld 即可测试编译工程 是否正确。 // V8.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h"// Copyright 2015 the...
  • 将google v8编译成DLL

    2009-03-24 08:12:16
    check out代码到 d:\v8 打开d:\v8\tools\visual_studio\v8.sln,用什么打开,就不说了吧! 在工程v8上点击鼠标右键,在弹出菜单上选择"属性",弹出工程属性配置窗口(v8 属性页), 1)在"配置属性=>...
  • 开始走了很多歪路,所以必须记录下来 先下载v8 ... ...打开V8\tools\visual_...直接编译v8就ok了,之前的项目依赖什么的都做好了。 其他之类我这边之前乱弄的时候都搭好的,比如phtyon 2.7之类,如果没有就先安
  • 参考资料: (不同 VS 版本的可以看这里,有很详细介绍的,不过是鸟文··)http://code.google.com/p/v8/wiki/BuildingOnWindows http://code.google.com/p/v8/ ... ...一、...
  • v8编译

    2016-02-26 17:23:16
    andorid javascript engine v8编译
  • 如题。本人采用一种极端的编译方式,成功编译了V8。目前只有win32-x86一种可用。我的VC编译器:https://www.lanzous.com/ia484de。下次我会在博客记录我的V8编译之旅。
  • 在做v8编译之前,请做好踩坑准备,这篇帖子是为了让其他同学遇到我这种类似的问题的时候有一个参考,不一定就一定能解决掉你的问题,毕竟在操作的时候各种因素都会影响最后的结果。 本人在编译时遇到的各种问题,也...
  • 编译V8

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,606
精华内容 642
关键字:

v8编译