![无法在 C++ 应用程序中包含 libv8](https://linux22.com/image/1081555/%E6%97%A0%E6%B3%95%E5%9C%A8%20C%2B%2B%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%B8%AD%E5%8C%85%E5%90%AB%20libv8.png)
我试图在我的 c++ 脚本中使用该包。该包按预期libv8-3.8.9.20
安装,但如果我尝试使用命令编译我的脚本,则什么也没有发生。/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
命令。
答案1
要在编写的程序中使用库(至少在 C/C++ 中),您不仅需要编译后的库(.so
-共享对象该库不仅包含一个文件(file),而且还包含一个头文件,用于描述该库所使用的函数和数据结构。
头文件通常不会默认安装。它们通常位于名为 的包中libwhatever-dev
,在本例中libv8-dev
需要安装。
然后你需要以下行:
#include <v8.h>
包含 V8 标头。编译时,您还需要告诉 g++ 链接到 v8 库 ( -lv8
)。V8 是一个相当复杂的怪物,找到一个可行的示例或教程来了解他们如何编译它可能是明智之举。
最后,关于术语的说明:脚本通常是指由解释器(例如python
),而这必须先进行编译才能运行。