Невозможно включить libv8 в приложение c ++

Я пытался использовать пакет libv8-3.8.9.20 в моем скрипте c ++. Пакет установлен в /usr/lib/ как положено, но если я попытаюсь скомпилировать свой скрипт с помощью команды g++ script.cpp -Iv8, ничего не произойдет.

Что должно быть в заголовке скрипта, чтобы я мог использовать библиотеку? Вот что я попробовал:

#include <v8>
#include <libv8>
#include <libv8.so>
#include <v8.so>

На следующей строке была using namespace v8 команда. Когда я делаю это, g++ возвращает ошибку:

index.cpp:1:20: fatal error: libv8.so: No such file or directory
 #include <libv8.so>
                    ^
compilation terminated.

Или что-то в этом роде. Я даже пытался скомпилировать его без заголовка, но g++ это не понравилось.

Можно ли использовать библиотеку таким образом? И как? Спасибо, m93a

РЕДАКТИРОВАТЬ: После установки libv8-dev (или libv8-3.14-dev, я пробовал оба) бросает компилятор:

index.cpp: In function ‘int main(int, char**)’:
index.cpp:10:35: error: no matching function for call to ‘v8::HandleScope::HandleScope(v8::Isolate*&)’
   HandleScope handle_scope(isolate);
                                   ^
index.cpp:10:35: note: candidates are:
In file included from index.cpp:1:0:
/usr/include/v8.h:473:3: note: v8::HandleScope::HandleScope(const v8::HandleScope&)
   HandleScope(const HandleScope&);
   ^

и так далее ... (это слишком долго и все еще говорит, что что-то не найдено)
Я использую команду g++ main.cpp -lv8.

0
задан 18 November 2013 в 19:59

1 ответ

Чтобы использовать библиотеку в программе, которую вы пишете (по крайней мере, на C / C ++), вам нужна не только скомпилированная библиотека (файл общего объекта .so - ), но и файл заголовка , который описывает функции и структуры данных, используемые библиотекой.

Заголовочные файлы обычно не устанавливаются по умолчанию. Они обычно находятся в пакете под названием libwhatever-dev, в данном случае libv8-dev, который необходимо установить.

Затем вам понадобится строка:

#include <v8.h>

, чтобы включить заголовки V8. При компиляции вам также нужно указать g ++ для связи с библиотекой v8 (-lv8). V8 - довольно сложный зверь, и было бы целесообразно найти рабочий пример или учебник, чтобы увидеть, как они его скомпилируют.

Наконец, примечание по терминологии: скрипт обычно относится к коду, который выполняется непосредственно из читаемой текстовой формы интерпретатором (таким как python), тогда как этот должен быть сначала скомпилирован перед запуском.

0
ответ дан 18 November 2013 в 19:59

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

Похожие вопросы: