2016-08-22 44 views
3

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

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

v8的源极被编译和构建,

  • cctest
  • fuzzer_support
  • 生成-字节码的期望
  • gmock
  • GTEST
  • icui18n
  • icuuc
  • inspector_protocol
  • json_fuzzer_lib
  • mksnapshot
  • parser_fuzzer_lib
  • regexp_fuzzer_lib
  • 单元测试
  • V8
  • v8_base_0
  • v8_base_1
  • v8_base_2
  • v8_base_3
  • v8_external_snapshot
  • v8_libbase
  • v8_libplatform
  • v8_libsampler
  • v8_nosnapshot
  • v8_simple_json_fuzzer
  • v8_simple_parser_fuzzer
  • v8_simple_regexp_fuzzer
  • v8_simple_wasm_asmjs_fuzzer
  • v8_simple_wasm_fuzzer
  • wasm_fuzzer_lib
  • wasm_asmjs_fuzzer_lib

名文件中生成。

我只是使用v8,它输出一个运行值javascript

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

是通过复制“hello-world.cc”的内容创建一个cpp文件的新C++项目中的示例代码。并且我运行“LNK2019”,“LNK1120”发生错误。

1> -----构建开始:项目:v8Application,配置:调试的Win32 -----
1> v8Application.cpp
1> v8Application.obj:错误LNK2019:无法解析的外部符号_main在函数“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:致命错误LNK1120:1无法解析的外部设备
==========构建:0成功,1失败,0最新,0跳过==========

似乎一定没有定义“platform :: CreateDefaultPlatform”部分只在'libplatform.h'声明中被转向。 但是,我会添加“src \ libplatform \ default-platform.cc”platform = CreateDefaultPlatform已被定义,其他错误会在add中发生。

Ws2_32.lib,winmm.lib”也被添加到Additional Dependencies属性的项目中。

我该怎么做?

+0

仅供参考,我使用vs2015&Windows 10. – Kito

+0

'不同的控制台' - 不同的方式? –

+0

我做了vs2015的“win32控制台应用程序”项目。我已经尝试过在cpp文件中放入“hello-world”例句。 – Kito

回答

1

您必须创建您的项目,然后LINK与V8,但您绝不能添加V8的源文件到您的项目。

第一件要做的事就是编译V8并记录库的生成位置(或将它们复制到您选择的目录中)。这同样适用于V8的包含文件,它们必须可用才能包含在项目中(建议不要将它们复制到项目目录中)。

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

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

但请记住,您必须先编译v8并将lib和include目录公开到您的新项目中。

更新:

您的项目文件表明您只对configuración“释放”配置您的项目,但上面的输出表明您在调试模式下进行编译。

项目配置:

<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不在附加依赖项的列表中,您可能需要添加它。

+0

我已将v8示例源代码的“hello-world”的内容复制到新项目中。我用错了吗? “链接器 - >输入 - >附加依赖项”和“C/C++ - >常规 - >其他包含目录”正在设置。 – Kito

+0

位置的新项目“C:\ Users \ kito \ Documents \ Visual Studio 2015 \ Projects \ v8Application”。 v8Application的配置是,包含文件夹和lib文件夹,还有一个v8Application.cpp文件和项目文件。在lib文件夹“v8.lib,v8_base_0.lib,v8_base_1.lib,v8_base_2.lib,v8_base_3.lib,v8_libbase.lib,v8_libplatform.lib,有一个v8_nosnapshot.lib”文件。 – Kito

+0

我在“Linker - > Input-> Additional Dependencies”中设置了v8.lib和v8_base(0,1,2,3)。在include文件夹中有一个“v8,v8config,v8-debug,v8-experimental,v8-platform,v8-profiler,v8-testing,v8-util,v8-version”的h文件。并且libplatform文件夹位于包含文件夹中。有一个“libplatform,v8-tracing”h文件。版本与“include文件夹”不同,请参考“https://github.com/v8/v8”的“master”中的“include” /“链接 – Kito

相关问题