Связывание V8 статически

У меня есть проект, который отлично работает с V8 динамически, но я хочу встроить его статически. Я могу успешно скомпилировать V8 как статический, но когда я включил получившиеся библиотеки в мой проект C++ (который я также изменил на статическое связывание), я получаю такие ошибки:

Error   12  error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall v8::HandleScope::HandleScope(class v8::Isolate *)" (__imp_??0HandleScope@v8@@QAE@PAVIsolate@1@@Z)

У меня также есть много других ошибок. Я видел в некоторых постах упоминание v8.lib, но его нет. Однако есть файл v8.obj.

Любое понимание будет приветствоваться, спасибо.

1 ответ

Нашел проблему. На самом деле это четко указано в верхней части файла v8.h:

// Setup for Windows DLL export/import. When building the V8 DLL the
// BUILDING_V8_SHARED needs to be defined. When building a program which uses
// the V8 DLL USING_V8_SHARED needs to be defined. When either building the V8
// static library or building a program which uses the V8 static library neither
// BUILDING_V8_SHARED nor USING_V8_SHARED should be defined.

У меня все еще было определено "USING_V8_SHARED". Спасибо @drescherjm за указание в правильном направлении.;)

Другие вопросы по тегам