帮酷LOGO
  • 显示原文与译文双语对照的内容
A Go API for the V8 javascript engine.

  • 源代码名称:v8
  • 源代码网址:http://www.github.com/augustoroman/v8
  • v8源代码文档
  • v8源代码下载
  • Git URL:
    git://www.github.com/augustoroman/v8.git
  • Git Clone代码到本地:
    git clone http://www.github.com/augustoroman/v8
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/augustoroman/v8
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • V8 绑定Build StatusGo Report CardGoDoc

    v8绑定允许用户在go可执行文件中执行 javascript 。

    这些绑定被测试以配合最近的v8版本与 Chrome 构建 54 - 60 ( 。请参见 specific 。travis文件以获得特定版本) 匹配。 例如 Chrome 59 ( 开发分支) 在编写时使用了 v8 5.9.211.4.

    注意,v8发布与 Chrome 发布时间线匹配: Chrome 48对应 v8 4.8 *,Chrome 49匹配 v8 4.9 * 。 你可以看到当前 Chrome的表以及相关的v8发行版:

    http://omahaproxy.appspot.com/

    使用预先编译的v8

    v8编译速度非常慢,它是一个大型项目。 如果你想去那个路线那里有建筑指令 below 。

    幸好,有一个项目为各种平台预先构建了 v8. 它被打包为 ruby gem,称为 libv8

    # Find the appropriate gem version for your OS,# visit: https://rubygems.org/gems/libv8/versions# Download the gem# MacOS Sierra is darwin-16, for v8 6.3.292.48.1 it looks like:curl https://rubygems.org/downloads/libv8-6.3.292.48.1-x86_64-darwin-16.gem > libv8.gem# Extract the gem (it's a tarball)tar -xf libv8.gem# Extract the `data.tar.gz` withincd libv8-6.3.292.48.1-x86_64-darwin-16
    tar -xzf data.tar.gz# Symlink the compiled libraries and includesln -s $(pwd)/data/vendor/v8/include $GOPATH/src/github.com/augustoroman/v8/include
    ln -s $(pwd)/data/vendor/v8/out/x64.release $GOPATH/src/github.com/augustoroman/v8/libv8# Run the tests to make sure everything workscd$GOPATH/src/github.com/augustoroman/v8
    go test
    使用 Docker ( 仅适用于 linux )的

    对于linux构建,你可以使用预先构建的库或者构建自己的库。

    预编译版本

    要使用预先构建的库,从 https://hub.docker.com/r/augustoroman/v8-lib/tags/ 中选择所需的v8版本,然后运行:

    # Select the v8 version to use:export V8_VERSION=6.7.77
    docker pull augustoroman/v8-lib:$V8_VERSION# Download the image, updating if necessary.docker rm v8 ||: # Cleanup from before if necessary.docker run --name v8 augustoroman/v8-lib:$V8_VERSION# Run the image to provide access to the files.docker cp v8:/v8/include include/# Copy the include files.docker cp v8:/v8/lib libv8/# Copy the library fiels.

    通过 Docker 构建你自己

    这需要更长的时间,但仍然很容易:

    export V8_VERSION=6.7.77
    docker build --build-arg V8_VERSION=$V8_VERSION --tag augustoroman/v8-lib:$V8_VERSION docker-v8-lib/

    然后将这些文件提取为 above:

    docker rm v8 ||: # Cleanup from before if necessary.docker run --name v8 augustoroman/v8-lib:$V8_VERSION# Run the image to provide access to the files.docker cp v8:/v8/include include/# Copy the include files.docker cp v8:/v8/lib libv8/# Copy the library fiels.
    构建 v8

    准备

    你需要静态构建v8并将它的放置在cgo所知道的位置。 这需要特殊的工具和构建目录。 使用正式指导作为指南,这里过程的一般步骤为:

    • go get 绑定库( 此库)
    • 创建v8构建目录
    • 安装库工具
    • 配置环境
    • 下载 v8
    • 生成 v8
    • 将文件复制或者链接到go库路径"
    • 生成绑定
    go get github.com/augustoroman/v8
    export V8_GO=$GOPATH/src/github.com/augustoroman/v8
    export V8_BUILD=$V8_GO/v8/build #or wherever you like
    mkdir -p $V8_BUILD
    cd $V8_BUILD
    git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
    export PATH=$PATH:$V8_BUILD/depot_tools
    fetch v8 #pull down v8 (this will take some time)
    cd v8
    gclient sync

    Linux

    ./build/install-build-deps.sh #only needed once
    gn gen out.gn/golib --args="strip_debug_info=true v8_use_external_startup_data=false v8_enable_i18n_support=false v8_enable_gdbjit=false v8_static_library=true symbol_level=0 v8_experimental_extra_library_files=[] v8_extra_library_files=[]"
    ninja -C out.gn/golib
    # go get some coffee

    OSX

    gn gen out.gn/golib --args="is_official_build=true strip_debug_info=true v8_use_external_startup_data=false v8_enable_i18n_support=false v8_enable_gdbjit=false v8_static_library=true symbol_level=0 v8_experimental_extra_library_files=[] v8_extra_library_files=[]"
    ninja -C out.gn/golib
    # go get some coffee

    Symlinking

    现在你可以创建符号符号,以便cgo可以将v8二进制文件与go库关联起来。

    cd $V8_GO
    ./symlink.sh $V8_BUILD/v8

    验证

    你应该完成尝试运行 go test

    引用

    也相关的是v8发行版更改 doc:

    https://docs.google.com/document/d/1g8JFi8T_oAE_7uAri7Njtig7fKaPDfotU6huOa1alds/edit

    Credits

    这里工作基于几个现有库:




    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语