如果我在Google V8引擎中导入.lib
和.h
文件,它会尝试在不同的c ++项目中使用它们。
我是否需要导入任何名称的文件?
当v8
的源代码是编译和构建时,
生成名称文件。
我只是使用v8
,并输出了javascript
的运行值。
我猜,似乎只使用“v8.lib
,v8_base (0,1,2,3) .lib
”和“v8.h
”。
通过复制“hello-world.cc
”的内容,示例代码是否在新的c ++项目中,制作了一个cpp文件。我跑了,“LNK2019
”,“LNK1120
”错误发生。
1> -----构建开始:项目:v8Application,配置:调试Win32 -----
1 GT; v8Application.cpp
1> v8Application.obj:错误LNK2019:函数“class v8 :: Platform * __cdecl v8 :: platform :: CreateDefaultPlatform(int)”中引用了未解析的外部符号_main(?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,在添加时会发生其他错误。
“Ws2_32.lib
,winmm.lib
”也被添加到Additional Dependencies属性的项目中。
我该怎么做?
答案 0 :(得分:1)
您必须创建项目,然后使用V8进行LINK,但不得将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“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
不在其他依赖项列表中,您可能想要添加它。