请问android能够调用linux中codeblock生成的动态库so文件吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问android能够调用linux中codeblock生成的动态库so文件吗?相关的知识,希望对你有一定的参考价值。

请问android能够调用linux中codeblock生成的动态库so文件吗?小弟在linux下用opencv for linux 版本开发了一个程序,现在需要移植到android手机上,由于程序比较复杂,而且opencv for linux 与 opencv for android 的使用方法不一样,将opencv for linux 转化位 opencv for android 很麻烦,所以希望能够使用jni方式来调用codeblock生成的动态库so,小弟花了很久很久,但是没有成功,查了很多资料,说android 生成的so与linux生成的so不兼容,我现在真不知道怎么办,希望大哥们帮忙,谢谢。

可以调用,但是不能直接调用,要通过代码目的JNI去调用,在JNI中导入头文件,通过NDK编译成功后即可。
NDK编译步骤:
1.选择 ndk 自带的例子 hello-jni ,我的位于E:\\android-ndk-r5\\samples\\hello-jni( 根据具体的安装位置而定 ) 。
2.运行 cygwin ,输入命令 cd /cygdrive/e/android-ndk-r5/samples/hello-jni ,进入到 E:\\android-ndk-r5\\samples\\hello-jni 目录。
3.输入 $NDK/ndk-build ,执行成功后,它会自动生成一个 libs 目录,把编译生成的 .so 文件放在里面。 ($NDK是调用我们之前配置好的环境变量, ndk-build 是调用 ndk 的编译程序 )
4.此时去 hello-jni 的 libs 目录下看有没有生成的 .so 文件,如果有,ndk 就运行正常啦。
参考技术A 恩,当然不行,你编译出来的库是linux,就算你编译通过了,在android下面肯定运行不了,你得用android的方式来编译。上层调底层的so库肯定运行不了的。那根本不是兼容问题,是用的C 库都不一样 参考技术B 当然可以 。。。。android的本质就是linux 参考技术C 不要纠结了,用android-ndk重新编译吧,体系都有可能不一样,还有系统api。 参考技术D 网上有很多android调用C++的教程,但是多是调用的.so 。请问是否可以调用DLL?如何实现?谢谢 啦!! 好像不行吧 可以,但是具体实现方法就不知道C

以上是关于请问android能够调用linux中codeblock生成的动态库so文件吗?的主要内容,如果未能解决你的问题,请参考以下文章

用android studio 老是包这些错误,但是能够运行,请问这是啥问题?怎么解决?

请问我有一个.so文件,如何在Linux下编程使用呢?

请问 我想给自己的android 手机内核升级 mediatek的

android studio里的ndk toolchains问题,请问怎么解决

请问能帮忙介绍下“linux定时调用kettle出现乱码”是如何解决的么?

麻烦请问一下,android如何修改xml文件中节点的值,并保存进去,谢谢