在linux下编译opencv for android

cd /home/ahfu
#选择opencv 3.4.6版本来编译
wget https://github.com/opencv/opencv/archive/3.4.6.tar.gz
tar -zxvf opencv-3.4.6.tar.gz
wget https://codeload.github.com/opencv/opencv_contrib/tar.gz/3.4.6
tar -zxvf opencv_contrib-3.4.6.tar.gz
#下载ndk
wget https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip
unzip android-ndk-r14b-linux-x86_64.zip
export PATH=$PATH:/home/ahfu/android-ndk-r14b
# 注意,我一开始使用了NDK版本 android-ndk-r19c-linux-x86_64.zip,结果一堆问题
#下载ANDROID SDK
wget https://dl.google.com/android/repository/tools_r25.2.5-linux.zip
unzip tools_r25.2.5-linux.zip
export PATH=$PATH:/home/ahfu/
# 注意,一开始我下载了android sdk版本 android-sdk_r24.4.1-linux.tgz,有问题
#下载编译工具ninja
wget https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip
unzip ninja-linux.zip
export PATH=$PATH:/home/ahfu/

#建立编译目录
cd opencv-3.4.6
mkdir build && cd build
#开始config
python build_sdk.py /home/ahfu/opencv-3.4.6/build /home/ahfu/opencv-3.4.6/ --ndk_path=/home/ahfu/android-ndk-r14b --extra_modules_path=/home/ahfu/opencv_contrib-3.4.6/modules --sdk_path=/home/ahfu
#因为我的编译机不能连接互联网,所以在下载文件的阶段报错
#没关系,手动完成配置
cd o4a #前面的配置脚本已经生成了这个目录
ccmake ../..
#关闭很多不需要的选项
#BUILD_opencv_features2d=OFF
#CMAKE_BUILD_TYPE=Release
#按c, 按g
#呼唤忍者来编译
ninja
#最后看见
#[850/850] Linking CXX static library lib/armeabi-v7a/libopencv_tracking.a
#编译成功
ls -l lib/armeabi-v7a/
#android下的各个库都编译成功了

#明天继续写个程序验证能不能在android下面跑起来

 

相关文章