首页 > 代码库 > Android 使用OpenCV之编译环境非CygWin方式(Win7+Eclipse+ADT+CDT+NDK)
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++:
【测试】
这样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机制里类似Java里面Activity生命周期的回调 函数(OnCreate/OnPause/OnResume之类的),缺点是无法直接使用Service和ContentPrivider类似的功能,此时仍然可以使用JNI;