android - android项目中V8 7.4.288.22版本库的交叉编译失败
问题描述
我正在尝试将 v8 库集成到 android 项目中,但编译失败并出现以下构建错误。
hello-jni.cpp:42: 错误: 未定义引用 'v8::platform::NewDefaultPlatform(int, v8::platform::IdleTaskSupport, v8::platform::InProcessStackDumping, std::__ndk1::unique_ptr >)' ../../buildtools/third_party/libc++/trunk/include/memory:3586: 错误:未定义引用'std::__1::__shared_weak_count::__release_weak()'
我已经使用以下参数构建了 V8 库。
is_debug = false target_cpu = "arm" v8_target_cpu = "arm" target_os = "android" is_component_build = false v8_static_library = true v8_use_snapshot = true v8_use_external_startup_data = false icu_use_data_file = false
我已经尝试了谷歌建议的几种解决方案,如下所示,但没有解决问题。
设置 is_clang: false & use_custom_libcxx: false
在以下链接共享示例项目。 https://drive.google.com/open?id=19qlaFauxhic193l1E0bTeh1SPo90rVge
请帮助我解决构建问题。
解决方案
未定义对 'v8::platform::NewDefaultPlatform(int, v8::platform::IdleTaskSupport, v8::platform::InProcessStackDumping, std::__ndk1::unique_ptr >)' 的引用
确保链接到libplatform.a
,这是 V8 构建输出的一部分。
未定义对“std::__1::__shared_weak_count::__release_weak()”的引用
那一个应该被解决use_custom_libcxx = false
。
推荐阅读
- flutter - 如何防止 Flutter 多次 Tab Reloads
- typescript - B2C 自定义策略的自动化测试
- javascript - 从动态按钮 Javascript 获取测试
- excel - Excel VBA中的正则表达式执行完全匹配
- angular - 身份服务器 4 使用带有纯 js 客户端的 cookie
- sql - 我在 MSSQL 列中找不到将分组中的总和行数据的任何链接?
- c++ - 在 C++ 中使用 int 作为 void 指针
- c - C加密逻辑与java不匹配
- python - 使用函数创建一列,其中变量来自其他列
- c++ - 我的程序出现分段错误,但它在我实现多态性之前运行