在Ubuntu上为Android编译dlib

问题描述

我正在尝试为Android编译dlib。我的SO是Ubuntu 20.04。我遵循了https://github.com/tzutalin/dlib-android

的本教程

我下载了Android-NDK版本r14b,并将其解压缩到/ opt。当我运行python3 build.py命令时,出现此错误

/bin/sh: 1: /opt/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++: not found
/bin/sh: 1: /opt/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++: not found
make: *** [/opt/android-ndk-r14b/build/core/build-binary.mk:530: obj/local/armeabi-v7a/objs/android_dlib/jni_imageutils.o] Error 127
make: *** Waiting for unfinished jobs....
/bin/sh: 1: /opt/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++: not found
make: *** [/opt/android-ndk-r14b/build/core/build-binary.mk:530: obj/local/armeabi-v7a/objs/android_dlib/jni_pedestrian_det.o] Error 127
make: *** [/opt/android-ndk-r14b/build/core/build-binary.mk:530: obj/local/armeabi-v7a/objs/android_dlib/jni_face_det.o] Error 127
Build Error

正在检查/opt/android-ndk-r14blinux-x86_64文件夹下没有prebuild。唯一的目录是darwin-x86_64

我也尝试使用android-ndk-r21d,但又遇到另一个错误

/opt/android-ndk-r21d/build/core/add-application.mk:178: *** Android NDK: APP_STL gnustl_static is no longer supported. Please switch to either c++_static or c++_shared. See https://developer.android.com/ndk/guides/cpp-support.html for more information.    .  Stop.
Build Error

你能帮我吗?

解决方法

您可以对此进行研究,https://github.com/Luca96/dlib-for-android/blob/master/setup.sh。我没有在Linux上尝试过,但是如果出现问题,下面的链接可能会给出一些提示。

我使用了powershell script,并从上面的仓库中进行了一些修改,并使用了来自github的dlib master在Windows上进行了编译。完成后,它将文件复制到给定的Android Studio文件夹。最新修改的脚本在这里https://github.com/quickgrid/Setup-Guide/blob/master/dlib-android-setup.ps1