Как собрать V8 без "внешних данных запуска"?
Я хочу автономную библиотеку JavaScript для встраивания. Я уже собираю V8, и он работает правильно, но для двоичного файла нужны два файла "внешних данных". Я не хочу эти файлы.
Я пытался собрать V8 без "внешних данных запуска". Я попытался установить v8_use_external_startup_data: 0 в build.common.gypi и build/standalone.gypi, но затем 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?
2 ответа
При использовании процесса сборки GYP (как вам кажется) передайте аргумент -Dv8_use_snapshot=false
при вызове gyp
, Это отключает создание данных снимка, и вам не понадобятся "natives_blob.bin" и "snapshot_blog.bin". Моя командная строка выглядит так (для V8 5.3, nb сценарии 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
Редактирование: с тех пор, как это было опубликовано, V8 теперь требуется ~20-30 секунд для запуска без файлов моментальных снимков. Это по сравнению с 2-3 с до. Это известное поведение и не считается ошибкой разработчиков V8, согласно списку рассылки пользователей v8.
статическая:
make snapshot=off x64.debug
динамическая:
make snapshot=off library=shared x64.debug
Я не знаю, как это сделать для визуальной студии.
Важно помнить, что процесс сборки постоянно меняется в Google и оптимизирован для сотрудников Google, а зачастую ужасно эзотеричен для всех, кто находится за пределами Google.