ubuntu16.04编译dlib for Android

来源:互联网 发布:淘宝小铺货源 编辑:程序博客网 时间:2024/06/05 11:27

安装cmake

参考这篇博客ubuntu安装CMake的几种方式中的软链接Android Sdk中的CMake

下载dlib源码

直接在github clone最新源码
https://github.com/davisking/dlib/tree/master
或者在官网下载指定版本的源码
http://dlib.net/

编译dlib源码

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

#!/bin/shrm -rf android_buildmkdir android_buildcd android_buildcmake -DANDROID_NDK=/home/gavinandre/Android/Sdk/ndk-bundle -DANDROID_STL=c++_shared -DCMAKE_TOOLCHAIN_FILE=/home/gavinandre/Android/Sdk/ndk-bundle/build/cmake/android.toolchain.cmake -DCMAKE_SYSTEM_VERSION=21 -DCMAKE_ANDROID_ARCH_ABI="armeabi-v7a" -DCMAKE_ANDROID_ARM_NEON=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_ANDROID_STL_TYPE="c++_shared"  $@ ..cmake --build . --config Release

-DXXXXXX是指定Android交叉编译工具链中的一些参数
需要注意两点:
1.建议指定DANDROID_STL和DCMAKE_ANDROID_STL_TYPE为c++_shared,因为当使用c++11和gnustl_shared来编译时,NDK缺少一些函数,参考:https://stackoverflow.com/questions/22922961/c11-cmath-functions-not-in-std-namespace-for-android-ndk-w-gcc-4-8-or-clang-3
2.指定CMAKE_BUILD_TYPE和config时为Release,这样会开启O3优化,在使用dlib的一些函数时会大幅度提升效率

然后运行该脚本

./dlibAndroid.sh

之后等待编译完成即可

编译完成后可以在android_build目录下找到编译完的静态库和动态库文件
dlib库在:android_build/dlib下

原创粉丝点击