我正在尝试在项目中使用V8。我已经将其构建为静态库,现在在out.gn/x64.release/obj文件夹中,我有很多.lib文件。基于此参数列表到g++:

--start-group \
out.gn/x64.release/obj/{libv8_{base,libbase,external_snapshot,libplatform,libsampler},\
third_party/icu/libicu{uc,i18n},src/inspector/libinspector}.a \
-Wl,--end-group

我在v8.cpp文件中未定义并链接以下库:
#pragma comment(lib, "v8_base.lib")
#pragma comment(lib, "v8_libbase")
#pragma comment(lib, "v8_external_snapshot")
#pragma comment(lib, "v8_libplatform")
#pragma comment(lib, "v8_libsampler")
#pragma comment(lib, "icuuc.lib")
#pragma comment(lib, "icui18n.lib")
#pragma comment(lib, "inspector")

但是现在我收到许多链接器错误:
1>------ Build started: Project: v8, Configuration: Release x64 ------
1>v8_libbase.lib(platform-win32.obj) : error LNK2001: unresolved external symbol __imp_timeGetTime
1>v8_libbase.lib(time.obj) : error LNK2001: unresolved external symbol __imp_timeGetTime
1>v8_libbase.lib(stack_trace_win.obj) : error LNK2001: unresolved external symbol __imp_StackWalk64
1>v8_libbase.lib(stack_trace_win.obj) : error LNK2001: unresolved external symbol __imp_SymSetOptions
...
1>C:\...\Documents\Visual Studio 2015\Projects\v8\x64\Release\v8.exe : fatal error LNK1120: 11 unresolved externals

我读过here



所以我的问题是如何识别这些DLL以及如何链接它们?我正在使用Visual Studio 2015。

最佳答案

您应该阅读代码中使用的功能的文档。

例如对于StackWalk64,您可以在“需求”部分中找到:

  • 可再发行-DbgHelp.dll 5.1或更高版本
  • header -DbgHelp.h
  • 库-DbgHelp.lib
  • DLL-DbgHelp.dll
  • 关于c++ - 如何知道.lib需要哪个.dll,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43884079/

    10-09 18:09
    查看更多