系统吧 专业的电脑操作系统,支持重装各种原版系统xp/win7/win8/win10 这个系统怎么样?试试系统吧系统,体验办公系统畅快愉悦感。 各种电脑系统安装过程一样,神一般的畅快!
-->
当前位置:主页 > 电脑技术 >

小编为你演示如何在Eclipse中配置NDK

作者:唐画绾 分类:电脑技术 发布时间:2017-09-19 18:04:36

电脑现已成为我们工作、生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到如何在Eclipse中配置NDK的问题,如果我们遇到了如何在Eclipse中配置NDK的情况,该怎么处理怎么才能解决如何在Eclipse中配置NDK带来的困扰呢,对于这样的问题其实我们只需要Eclipse, Mac版本的NDK---android-ndk-r10这里以引用opencv的动态库为例下载Mac平台的NDK版本,这里下载的是android-ndk-r10例如在Eclipse的JNI目录中引入opencv库, 配置如下,绿色方框是最终生成动态库的目录:为...

电脑现已成为我们工作、生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到如何在Eclipse中配置NDK的问题,如果我们遇到了如何在Eclipse中配置NDK的情况,该怎么处理怎么才能解决如何在Eclipse中配置NDK带来的困扰呢,对于这样的问题其实我们只需要Eclipse, Mac版本的NDK---android-ndk-r10这里以引用opencv的动态库为例下载Mac平台的NDK版本,这里下载的是android-ndk-r10例如在Eclipse的JNI目录中引入opencv库, 配置如下,绿色方框是最终生成动态库的目录:为JNI编译Android.mk和Application.mk文件Java层如何加载opencv的动态库注:Java层在加载o这样就解决了这样的问题,接下来给大家带来如何在Eclipse中配置NDK的详细操作步骤。

工具/原料

Eclipse, Mac版本的NDK---android-ndk-r10
这里以引用opencv的动态库为例

方法/步骤

下载Mac平台的NDK版本,这里下载的是android-ndk-r10

例如在Eclipse的JNI目录中引入opencv库, 配置如下,绿色方框是最终生成动态库的目录:

小编为你演示如何在Eclipse中配置NDK

为JNI编译Android.mk和Application.mk文件

小编为你演示如何在Eclipse中配置NDK

小编为你演示如何在Eclipse中配置NDK

Java层如何加载opencv的动态库

注:Java层在加载opencv库的时候,发现有依赖关系,该依赖关系的顺序已经调好了,否则会提示XX库找不到

小编为你演示如何在Eclipse中配置NDK

Application.mk中,该值APP_STL的说明

1.在jni目录下新建Application.mk;加入APP_STL :=stlport_static右边的值还可以换成下面几个:

system-使用默认最小的C++运行库,这样生成的应用体积小,内存占用小 ,但部分功能将无法支持

stlport_static-使用STLport作为静态库

stlport_shared- STLport作为动态库,这个可能产生兼容性和部分低版本的 Android固件,目前不推荐使用。

gnustl_static-使用GNU libstdc++作为静态库

默认情况下STLPORT是不支持C++异常处理和RTTI,所以不要出现-fexceptions或-frtti,如果真的需要,可以使用gnustl_static来支持标准C++的特性,但生成的文件体积会偏大,运行效率会低一些。

支持C++异常处理,在Application.mk中加入LOCAL_CPPFLAGS += -fexceptions这句,同理支持RTTI,则加入LOCAL_CPPFLAGS += -frtti。

强制重新编译STLPort,在Application.mk中加入STLPORT_FORCE_REBUILD := true可以强制重新编译STLPort源码,由于一些原因可能自己需要修改下STLPort库,一般普通的开发者无需使用此项

2.在要使用STL的cpp文件中包含相关的头文件,并且使用using namespace std;

补充:

1. APP_STL的取值:

2. system(default)系统默认的C++运行库

3. stlport_static以静态链接方式使用的sttport版本的STL

4. stlport_shared以动态链接方式使用的sttport版本的STL

5. gnustl_static以静态链接方式使用的gnustl版本的STL

6. gnustl_shared以动态链接方式使用的gnustl版本的STL

7. gabi++_static以静态链接方式使用的gabi++

8. gabi++_shared以动态链接方式使用的gabi++

9. c++_static以静态链接方式使用的LLVM libc++

10. c++_shared以动态链接方式使用的LLVM libc++

11. 就目前的情况,LLVM的支持要优于GNU,所以推荐使用“c++_static”

12. 由于Android系统的碎片化,各个版本的libgnustl_share.so不一致,就导 致崩溃或者运行异常问题鉴于gnustl_share存在诸多不稳定问题,所以尽量 采用gnustl_static替代gnustl_share。

13. 使用gnustl_static,尽量避免使用gnustl_share。此外gnustl将逐步废弃!

注意事项

说明:如果遇到该错误 undefined reference to '__atomic_fetch_add_4',请在Android.mk文件引入该库: LOCAL_LDLIBS += -latomic
说明:在window系统中,Android工程不能包含中文路径,否则编译jni目录里面的文件时,找不到目标路径,编译不出.so文件的.

xp 更多>>
win7 更多>>
win8 更多>>
win10 更多>>
U盘 更多>>
电脑技术 更多>>
网站地图 | 豫ICP备2021035069号-4 | 友情链接qq:191064436
系统吧

版权所有 © 2012-2023 系统吧 免责声明:本站资源均收集于互联网,其著作权归原作者所有,如果有侵犯您权利的资源,请来信告知,我们将及时删除相应资源。