当我尝试运行 Wikitude 示例时出现此错误。我该怎么解决这个问题呢。
错误:错误:C:/ Users / se / Desktop / wwww / Examples / SDKExamples / plugins / src / main / cpp / jni /../ lib / x86 / libippicv.a(jmp_icvippiMulC_32f_C1IR_as.so):重定位R_386_GOTOFF在制作共享对象时,不能使用可抢占符号icv_ippJumpIndexForMergedLibs
错误:错误:链接器命令失败,退出代码为1(使用-v查看调用)
答案 0 :(得分:6)
我有同样的错误,抱歉无法添加评论,因为没有足够的声誉。
错误:错误:/Users/alex/Projects/Android/docsign/opencv/src/sdk/native/3rdparty/libs/x86/libippicv.a(jmp_icvippiTranspose_32s_C4IR_as.so):无法使用针对可抢占符号icv_ippJumpIndexForMergedLibs的重定位R_386_GOTOFF制作共享对象时
这是最新的Android Studio和NDK,我使用的是OpenCV,
Android Studio 3.0.1 NDK 16.0.4442984
在我没有更新NDK的其他机器上不会发生这种情况。
更新: 维护OpenCV for android的人建议我在编译新的NDK时将以下行添加到CMake文件中以避免错误。
设置(CMAKE_SHARED_LINKER_FLAGS" $ {CMAKE_SHARED_LINKER_FLAGS} -Wl, - exclude-libs,libippicv.a -Wl, - exclude-libs,libippiw.a")
https://github.com/opencv/opencv/issues/10229#issuecomment-370326899
答案 1 :(得分:0)
我遇到了完全相同的问题,但我想我找到了解决这个问题的方法。我认为问题在于新版本的NDK,所以你可以尝试重新安装它。
转到SDK Manager并导航到Appearance & Behavior/System Settings/Android SDK
。
在标签菜单中选择SDK工具,然后取消选择NDK checkbox -> Apply
。卸载后 - >标记NDK并再次申请。
此外,安装NDK后,删除项目中的build
文件夹(仅包含其中包含intermediates
文件夹的文件夹。)
当您Make
项目时,您的错误仍然会发生,但是当您点击Debug
时,您的代码就会运行。
这种解决方法对我有用,所以我希望这也适合你。
答案 2 :(得分:0)
wikitude Android示例目前不会使用Android NDK 16进行构建。您需要将Android NDK降级为14。
或者,您可以从构建中删除插件功能。为此,请从 settings.gradle 文件中删除':plugins'
的包含,并在主 build.gradle 中删除引用':plugins'
的行。