2016-06-27 20 views
1

Ich möchte eine eigenständige JavaScript-Bibliothek für die Einbettung. Ich baue bereits V8 und es funktioniert korrekt, aber Binär benötigt zwei "externe Daten" -Dateien. Ich will diese Dateien nicht.Wie man V8 ohne "externe Startdaten" baut?

Ich habe versucht, V8 ohne "externe Startdaten" zu bauen. Ich habe versucht, v8_use_external_startup_data: 0, in build.common.gypi und build/standalone.gypi zu setzen, aber dann meldet es einen Fehler zu einem bestimmten Zeitpunkt.

Ich verwende folgenden Code v8 zu bauen:

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 

Ich verwende standardmäßig statische Linken. Wie kann ich V8 ohne Notwendigkeit von natives_blob.bin und snapshot_blog.bin bauen?

Antwort

2

Wenn Sie den GYP-Build-Prozess verwenden (wie Sie scheinen), übergeben Sie das Argument -Dv8_use_snapshot=false beim Aufruf gyp. Das deaktiviert die Erstellung von Snapshot-Daten und Sie werden "natives_blob.bin" und "snapshot_blog.bin" nicht benötigen. Meine Befehlszeile sieht wie folgt aus (für V8 5.3 nb die GYP Skripte vor kurzem verschoben haben):

python.exe gypfiles\gyp_v8 -Dtarget_arch=x64 -Dcomponent=shared_library -Dv8_enable_i18n_support=false -Dv8_use_snapshot=false -G msvs_version=2013 
+0

"wie du solltest" .. diesen Monat. – xaxxon

0

edit: Da dies gepostet wurde, dauert V8 jetzt ~ 20-30s, um ohne Snapshot-Dateien zu starten. Dies ist bis zu 2-3s zuvor. Es ist ein bekanntes Verhalten und wird von den V8-Entwicklern nicht als Fehler angesehen, und zwar über die Mailingliste v8-users.

statisch:

make snapshot=off x64.debug 

dynamisch:

make snapshot=off library=shared x64.debug 

Ich weiß nicht, wie es für Visual Studio zu tun.

Es ist wichtig, daran zu denken, dass der Build-Prozess ständig von Google geändert wird und dass es für Google-Mitarbeiter optimiert ist und oft schrecklich esoterisch für jeden außerhalb von Google ist.

+0

@Boinst Antwort ist auch richtig, Ich mag diese eine mehr, weil es einfacher – entro

+0

Das ist nicht mehr eine gute Idee . Aktuelle Versionen von V8 brauchen jetzt sehr lange, um ohne ihre Snapshot-Dateien zu starten. Früher waren es ~ 2-3 Sekunden, jetzt sind es ~ 20-30 Sekunden. – xaxxon