当前位置: 代码迷 >> Android >> Android 使用OpenCV之编译环境非CygWin模式(Win7+Eclipse+ADT+CDT+NDK)
  详细解决方案

Android 使用OpenCV之编译环境非CygWin模式(Win7+Eclipse+ADT+CDT+NDK)

热度:21   发布时间:2016-04-28 05:32:26.0
Android 使用OpenCV之编译环境非CygWin方式(Win7+Eclipse+ADT+CDT+NDK)

本文完全基于官网: https://dl-ssl.google.com/android/eclipse/

只有简单的三步,官网写的非常简明全面,非常佩服奋斗

准备

1. Eclipse(Indigo)

2. ADT: 这个不说了,无非就是eclipse添加个android的安装源,如果这里选择了NDK Plugin的话,就会自动安装CDT哟;

3. NDK(android-ndk-r9d-windows-x86_64) 

地址: http://developer.android.com/tools/sdk/ndk/index.html#Installing 选择适合自己的版本;

足矣,下面就是几步简单配置:


【配置A】NDK和CDT安装完成后,在项目属性也能看到类似页面,


一劳永逸的方法就是在系统环境变量里添加NDKROOT路径到你解压的NDK路径,



【配置B,添加编译c/c++的头文件】

此时编译还会提示std什么的unresolved,添加头文件包含路径吧,可以勾选上 apply to all configuration;

Open Project Properties -> C/C++ General -> Paths and Symbols and add the following Include paths for C++:

# for NDK r8 and prior:${NDKROOT}/platforms/android-9/arch-arm/usr/include${NDKROOT}/sources/cxx-stl/gnu-libstdc++/include${NDKROOT}/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/include${ProjDirPath}/../../sdk/native/jni/include
# for NDK r8b and later:${NDKROOT}/platforms/android-9/arch-arm/usr/include${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/include${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include${ProjDirPath}/../../sdk/native/jni/include   


【测试】

这样import OpenCV-2.4.6-android-sdk的sample进来测试,注意如果import时选择了copy到workspace(最好不要copy,因为sample中很多代码都用到了sdk里的东西,而且取的是相对路径),则需要添加包含路径到sdk的 jni/include路径下,即上面的绿色背景下的相对路径由于你的移出已经不起作用了。



至此so,apk一个也不缺的出来了,都不用三步;
EnjoyIT,



【编外】:

http://developer.android.com/tools/sdk/ndk/index.html#Installing 不仅有ndk的各种版本,ndk的使用方法在这个地址下也是简明扼要。

比如介绍了使用NativeCode可以有两种方法:1). 大名鼎鼎的JNI,这种方法发挥AndroidFramework的长处,缺点就是需要针对不同平台编译出不同库(.so),比如常见的arm-eabi, armv7, arm-eabi-withNeon 等版本;2).NativeActivity,在Android机制里类似JavaActivity生命周期的回调 函数。

  相关解决方案