Ubuntu16.04 编译 Dlib for Android(更新版)

Ubuntu16.04 编译 Dlib for Android(更新版)

本文为https://blog.csdn.net/lj402159806/article/details/76767882的更新版

编译版本

  • Dlib 19.17

  • ndk-r20

编译环境

首先需要安装sdk tools,然后通过sdkmanager安装cmake和ndk

mkdir sdk && cd sdk
#下载sdk tools
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
#解压sdk tools
unzip sdk-tools-linux-4333796.zip
cd tools/bin
#查看sdk列表
./sdkmanager --list
#安装cmake和ndk
./sdkmanager "cmake;3.6.4111459" "ndk-bundle"

在github下载指定版本的源码
https://github.com/davisking/dlib/releases

编译dlib

进入源码目录新建一个dlibAndroid.sh脚本文件,内容如下

#!/bin/sh

export BASE_PATH=${HOME}/Android
export SDK_PATH=${BASE_PATH}/sdk
export NDK_PATH=${SDK_PATH}/ndk-bundle
export cmake=${SDK_PATH}/cmake/3.6.4111459/bin/cmake
#export OPENBLAS_HOME=${BASE_PATH}/OpenBLAS-0.3.6/android-openblas/armv7a
export OPENBLAS_HOME=${BASE_PATH}/OpenBLAS-0.3.6/android-openblas/arm64

rm -rf android_build
mkdir android_build
cd android_build

${cmake} -DANDROID_SDK=${SDK_PATH} \
    -DANDROID_NDK=${NDK_PATH} \
    -DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake \
    -DANDROID_PLATFORM=android-21 \
    -DANDROID_ABI="arm64-v8a" \
    -DANDROID_STL=c++_static \
    -DBLAS_LIBRARIES=${OPENBLAS_HOME}/lib/libopenblas.a \
    -DDLIB_NO_GUI_SUPPORT=ON \
    -DCMAKE_INSTALL_PREFIX=./android_install/arm64 \
    -DCMAKE_BUILD_TYPE=Release $@ ..

    #-DANDROID_ABI="armeabi-v7a with NEON" \
${cmake} --build . --config Release --target install -- -j16

然后执行该脚本./opencvAndroid.sh

完成后在android_build/android_install目录下可以找到头文件和库文件

说明

export OPENBLAS_HOME=${BASE_PATH}/OpenBLAS-0.3.6/android-openblas/arm64

-DBLAS_LIBRARIES=${OPENBLAS_HOME}/lib/libopenblas.a \

这两句是指定openblas的静态库文件路径,该文件需要事先在android平台上编译好,编译方法参考https://blog.csdn.net/lj402159806/article/details/91436075

发布了174 篇原创文章 · 获赞 119 · 访问量 55万+

猜你喜欢

转载自blog.csdn.net/lj402159806/article/details/91437811