接着上一篇实践发现的问题《C++使用v8引擎执行JavaScript_永远的魔术1号-CSDN博客》,我在网上查找了很多资料,原因都是说,由于v8默认使用了clang编译,而clang使用的是libc++作为C++标准库,而demo使用的环境则是使用libstdc++作为标准库,两种标准库不同,存在inline namespace __1的问题。
然后又看到网上又很多提到可以使用gn命令编译,在命令中增加参数控制不使用clang,于是我尝试着编译了一下。先说一下结果,编译过程在v8.dll LINK的阶段失败了。
方法一:
call gn gen out/x64.release --args="is_debug=false use_glib=false is_component_build=true v8_use_external_startup_data=true v8_static_library=false is_clang = false v8_enable_i18n_support=false target_cpu=\"x64\""
call ninja -C out