如何在不同的 c++ 项目中使用 Google V8 引擎?

How do I use the Google V8 Engine in a different c++ Project?

如果我在 Google V8 引擎中导入 .lib.h 文件,它将尝试在不同的 C++ 项目中使用它们。

我需要导入任何名称的文件吗?

v8 的源代码被编译和构建时,

名称文件生成。

我简单地使用 v8,它输出 运行 值 javascript

我的猜测,似乎只使用了“v8.libv8_base (0,1,2,3) .lib”和“v8.h”。

是在一个新的c++项目中通过复制“hello-world.cc”的内容,制作了一个cpp文件的示例代码。而我出现运行, "LNK2019", "LNK1120"错误.

1>----- Build started: Project: v8Application, Configuration: Debug Win32 -----
1> v8Application.cpp
1>v8Application.obj : error LNK2019: unresolved external symbol _main referenced in function"class v8::Platform * __cdecl v8::platform::CreateDefaultPlatform(int)" (?CreateDefaultPlatform@platform@v8@@YAPAVPlatform@2@H@Z) 1>c:\users\kito\documents\visual studio 2015\Projects\v8Application\Debug\v8Application.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

似乎不​​能定义 "platform :: CreateDefaultPlatform" 部分只在 'libplatform.h' 声明中打开。 但是,我会添加"src \ libplatform \ default-platform.cc" platform::CreateDefaultPlatform 已经定义,添加时出现其他错误。

""Ws2_32.lib, winmm.lib" 也被添加到 Additional Dependencies 属性.

的项目中

我该怎么做?

您必须先创建您的项目,然后 LINK 使用 V8,但您不得将 V8 的源文件添加到您的项目中。

首先要做的是编译 V8 并记下生成库的位置(或将它们复制到您选择的目录)。 V8 的 include 文件也是如此,它们必须可用才能包含在您的项目中(不建议将它们复制到您的项目目录)。

在您的控制台项目的设置中,转到 Linker -> Input -> Additional Dependencies 并将 v8.lib 放在那里。如果错误仍然存​​在,您可能还想添加 v8_libplatform.lib

类似的内容适用于包含文件,在您的项目设置中,您应该转到 C/C++ -> General -> Additional Include Directories 并在那里添加 V8 的包含目录。

但请记住,您必须先单独编译 v8,然后将 lib 和 include 目录暴露给您的新项目。

更新:

您的项目文件表明您仅针对配置 "Release" 配置了您的项目,但上面的输出表明您正在调试模式下编译。

项目配置:

<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    ...
    <Link>
        <AdditionalDependencies>ws2_32.lib;winmm.lib;v8.lib;v8_base_0.lib;v8_base_1.lib...
    </Link>
<ItemDefinitionGroup

上面的编译器输出:

1>----- Build started: Project: v8Application, Configuration: Debug Win32 -----

您必须针对所有配置配置您的项目,或者至少使用您设置的配置对其进行测试。

另一方面,v8_libplatform.lib 不在附加依赖项列表中,您可能需要添加它。