在 C++ 中嵌入 V8 会导致与 libcpp 相关的"unrecognized external symbol"错误

Embeding V8 in C++ causes "unrecognized external symbol" errors related to libcpp

本文关键字:unrecognized 错误 symbol external libcpp C++ V8      更新时间:2023-10-16

我正在尝试将v8嵌入到我的应用程序中(使用Visual Studio 2019)。首先,我将其构建为x86(ia32)调试静态链接库。我也希望它是单一的。有一些错误,但最终我成功地构建了它。编译后我运行了v8测试,结果很好。接下来,我想使用它,所以我包含了所有必要的头文件和链接的"v8_monolith.lib"库文件。但当我试图编译我的应用程序时,它会给我带来很多(约4500)链接错误,确切地说是与libcpp相关的"无法识别的外部符号"(例如"__libcpp_debug_function")。我确信我正确地选择了运行库。我也试着重新编译了几次,但都无济于事。我认为libcpp是有效的,因为我使用它没有任何问题

这是我的args.gn文件:

is_debug = true
target_cpu = "x86"
v8_enable_backtrace = true
v8_enable_slow_dchecks = true
v8_optimized_debug = false
is_component_build = false
v8_static_library = true
v8_monolithic = true
v8_use_external_startup_data = false

尝试将use_custom_libcxx = false添加到args.gn,这应该会有所帮助。