5

当我尝试运行Wikiitude示例时出现此错误。我该如何解决这个问题。

错误:错误: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 查看调用)

4

3 回答 3

7

我有同样的错误,抱歉不能添加评论,因为没有足够的声誉。

错误:错误:/Users/alex/Projects/Android/docsign/opencv/src/sdk/native/3rdparty/libs/x86/libippicv.a(jmp_icvippiTranspose_32s_C4IR_as.so): 重定位 R_386_GOTOFF 针对可抢占符号 icv_ippJumpIndexForMergedLibs 时无法使用共享对象

这是最新的 Android Studio 和 NDK,我正在使用 OpenCV,

Android Studio 3.0.1 NDK 16.0.4442984

这不会发生在我的另一台没有更新 NDK 的机器上。

更新:维护 OpenCV for android 的人建议我在 CMake 文件中添加以下行,以避免在使用新的 NDK 编译时出现错误。

设置(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

于 2017-11-21T14:29:52.277 回答
0

我遇到了完全相同的问题,但认为我已经找到了解决此问题的方法。我认为问题在于较新版本的NDK,因此您可以尝试重新安装它。

转到 SDK 管理器并导航到Appearance & Behavior/System Settings/Android SDK.

在选项卡菜单中选择 SDK 工具并取消选择NDK checkbox -> Apply. 卸载后 -> 标记 NDK 并再次应用。

此外,安装 NDK 后,删除build项目中的文件夹(仅包含该intermediates文件夹的文件夹)。

当您Make进行项目时,您的错误仍然会发生,但您的代码将在您点击时运行Debug

这种解决方法对我有用,所以我希望这对你也有用。

于 2017-11-27T12:12:06.033 回答
0

wikiitude Android 示例当前不会使用 Android NDK 16 构建。您需要将 Android NDK 降级到 14。

或者,您可以从构建中删除插件功能。为此,请':plugins'settings.gradle文件中删除 include for 以及':plugins'在主build.gradle中引用的行。

于 2018-03-01T21:19:38.173 回答