2016-06-27 9 views
1

Я хочу отдельную библиотеку JavaScript для встраивания. Я уже создаю V8 и работаю правильно, но для двоичного файла нужны два файла «внешних данных». Мне не нужны эти файлы.Как построить V8 без «внешних данных запуска»?

Я пытался построить V8 без «внешних данных запуска». Я попытался установить v8_use_external_startup_data: 0, в build.common.gypi и build/standalone.gypi, но потом сделать сообщение о сбое в какой-то момент.

Я использую следующий код для создания 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, нб скрипты 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 
+0

«как и должно быть» .. в этом месяце. – xaxxon

0

Редактировать: Поскольку это было опубликовано, V8 теперь занимает ~ 20-30 секунд для запуска без файлов моментальных снимков. Это до 2-3 лет. Это известное поведение и не считается ошибкой разработчиков V8 в списке рассылки v8-users.

статичные:

make snapshot=off x64.debug 

динамический:

make snapshot=off library=shared x64.debug 

Я не знаю, как сделать это для Visual Studio.

Важно помнить, что процесс сборки постоянно изменяется Google и что он оптимизирован для сотрудников Google и часто ужасно эзотеричен для любого пользователя за пределами Google.

+0

@Boinst ответ тоже правильно, мне нравится это еще один, потому что это проще – entro

+0

Это больше не является хорошей идеей , Текущие версии V8 теперь занимают ОЧЕНЬ большое время для запуска без файлов моментальных снимков. Это было ~ 2-3 секунды, теперь это ~ 20-30 секунд. – xaxxon