ndk 编译opencv

来源:互联网 发布:淘宝金币有什么用 编辑:程序博客网 时间:2024/05/01 17:06

1.        NDK下载

2.        NDK 环境配置

1) 设置NDK的路径到环境变量

   打开/etc/profile文件,在文件尾部添加如下内容:

export NDK_HOME=/home/embedclub/android-ndk-r8

export PATH=$NDK_HOME:$PATH

2) 使环境变量生效

   打开终端输入如下命令:

   source /etc/profile

3.        基于NDK的OpenCV静态库编译

1) 下载基于linux OpenCV 源码。

2) 在OpenCV目录下新建文件夹android

3) 打开终端输入cd到刚才新建的android目录

4) 在开终端中输入export ANDROID_NDK=/home/embedclub/android-ndk-r8

5) 继续输入如下命令:

   cmake-DCMAKE_TOOLCHAIN_FILE=path/to/the/android.toolchain.cmake ..

Cmake -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON-DHAVE_EIGEN=1  -DHAVE_CAMV4L2=ON -DBUILD_TBB=ON -DWITH_TBB=ON -DHAVE_OPENMP=1 -DBUILD_EXA
MPLES=1-DANDROID_ABI="armeabi-v7a"  -DCMAKE_TOOLCHAIN_FILE=../android/android.toolchain.cmake$@ ../..

(前提是保证系统安装了CMake工具)

6) 如果没有错误,继续在终端输入:make -j4, 开始编译

4.        动态库封装

1) 新建工程文件夹,并在在此目录下新建jni文件夹,用来防止源码和Android.mk以及Application.mk

2) 编辑完成源码和Android.mk和Application.mk文件后,打开终端cd到工程目录下后输入ndk-build命令

5.        注意事项

1) Android.mk文件如果依赖其它动态库或者静态库,必须在本项目之前加入他们的描述,如下红色部分为libCWDetectSDK动态库的声明

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := CWDetectSDK

LOCAL_SRC_FILES := $(LOCAL_PATH)/CWDetectLib/lib/libCWDetectSDK.so

include $(PREBUILT_SHARED_LIBRARY)

 

include $(CLEAR_VARS)

LOCAL_CPPFLAGS := -frtti -fexceptions

LOCAL_MODULE := testSDK

LOCAL_MODULE_TAGS := option

LOCAL_SRC_FILES := \

main.cpp

LOCAL_C_INCLUDES := \

$(LOCAL_PATH)/CWDetectLib/include

LOCAL_LDLIBS += -lstdc++

LOCAL_SHARED_LIBRARIES := CWDetectSDK

include $(BUILD_EXECUTABLE)

0 0