我想要一个独立的JavaScript库来嵌入。我已经构建了V8并且它正常工作,但二进制需要两个“外部数据”文件。我不想要这些文件。
我试图在没有“外部启动数据”的情况下构建V8。我试图在build.common.gypi和build / standalone.gypi中设置v8_use_external_startup_data:0,但是make会在某个时刻报告失败。
我正在使用以下代码来构建v8:
git clone https://chromium.googlesource.com/chromium/tool/depot_tools.git
export PATH=`pwd`/depot_tools:"$PATH"
fetch v8
gclient sync
cd v8
git checkout branch-heads/5.1
# ... modifying gyni files
make x64.release -j 20
我正在使用默认的静态链接。 如何构建V8而不需要natives_blob.bin和snapshot_blog.bin?
答案 0 :(得分:3)
编辑:自发布以来,V8现在需要大约20-30秒才能启动而没有快照文件。这是从2-3s之前。这是一种已知行为,根据v8用户邮件列表,V8开发人员不会将其视为错误。
静态:
make snapshot=off x64.debug
动态:
make snapshot=off library=shared x64.debug
我不知道如何为视觉工作室做这件事。
重要的是要记住谷歌不断改变构建过程,并且它针对谷歌员工进行了优化,对谷歌以外的任何人来说都是非常深奥的。
答案 1 :(得分:2)
使用GYP构建过程时(如您所见),在调用-Dv8_use_snapshot=false
时传递参数gyp
。这将关闭构建快照数据,您将不需要“natives_blob.bin”和“snapshot_blob.bin”。我的命令行看起来像这样(对于V8 5.3,n.b。最近GYP脚本已移动):
python.exe gypfiles\gyp_v8 -Dtarget_arch=x64 -Dcomponent=shared_library -Dv8_enable_i18n_support=false -Dv8_use_snapshot=false -G msvs_version=2013