2016-08-22 73 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

相關問題