【问题标题】:Cross compilation is failing for V8 7.4.288.22 version libraries in android projectandroid项目中V8 7.4.288.22版本库的交叉编译失败
【发布时间】:2019-12-19 00:47:01
【问题描述】:

我正在尝试将 v8 库集成到 android 项目中,但编译失败并出现以下构建错误。

hello-jni.cpp:42: error: undefined reference to '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

请帮助我解决构建问题。

【问题讨论】:

    标签: android cross-compiling v8


    【解决方案1】:

    对 '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解决。

    【讨论】:

      猜你喜欢
      • 2021-04-12
      • 2018-08-08
      • 2018-04-03
      • 2017-10-12
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 2015-03-07
      • 1970-01-01
      相关资源
      最近更新 更多