android - 在 android studio 中使用 NDK-BUILD(带有 dlib 库)时,出现以下错误

标签 android opencv native dlib

我正在尝试在项目中使用 dlib、opencv 和 android studio。在执行 ndk-build 时显示以下错误

部分错误

error: undefined reference to dlib::entropy_decoder_kernel_2::decode(unsigned int, unsigned int)'
error: undefined reference to 'dlib::entropy_decoder_kernel_2::get_target(unsigned int)
 error: undefined reference to 'dlib::entropy_decoder_kernel_2::get_target(unsigned int)
....................
error: undefined reference to 'dlib::base64::decode(std::istream&, std::ostream&) const
 error: undefined reference to 'dlib::base64::~base64()

Android.mk文件内容为

*LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
OPENCV_LIB_TYPE:=STATIC
OPENCV_INSTALL_MODULES:=on
WITH_CUDA=OFF
include /home/sysadmin/ANDROID_PROG_ENVIRONMENTS/OpenCV-android-sdk/sdk/native/jni/OpenCV.mk
LOCAL_C_INCLUDES = $(LOCAL_PATH)
LOCAL_C_INCLUDES +=/home/sysadmin/Android/opencv-3.1.0/modules/imgproc/include
LOCAL_C_INCLUDES +=/home/sysadmin/Android/opencv-3.1.0/modules/core/include
LOCAL_C_INCLUDES +=/home/sysadmin/Android/opencv-3.1.0/modules/calib3d/include/
LOCAL_C_INCLUDES +=/home/sysadmin/Android/opencv-3.1.0/modules/features2d/include/
LOCAL_C_INCLUDES +=/home/sysadmin/Android/opencv-3.1.0/modules/flann/include/
LOCAL_C_INCLUDES +=/dlib/dlib/entropy_decoder_model/
LIBS=/dlib/dlib/
LOCAL_MODULE    := ImageProcessing
LOCAL_SRC_FILES = ImageProcessing.cpp
LOCAL_SRC_FILES += head_pose_estimation.cpp
LOCAL_LDLIBS := -lm -llog -ldl -lz
LDFLAGS =-ldlib
LOCAL_CPPFLAGS +=-lpthread -lX11 -ggdb  -fexceptions -frtti -std=c++11
include $(BUILD_SHARED_LIBRARY)*

最佳答案

在 dlib 源文件夹中的 Android.mk 文件中添加它要求的任何 cpp 文件作为 LOCAL_SRC_FILES。例如,对于您案例中显示的两个链接错误,请执行以下步骤

LOCAL_SRC_FILES += ../dlib/base64/base64_kernel_1.cpp \
                   ../dlib/entropy_decoder/entropy_decoder_kernel_2.cpp \

这些基本上是您的项目期望来自 dlib 的链接错误

关于android - 在 android studio 中使用 NDK-BUILD(带有 dlib 库)时,出现以下错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38364581/

相关文章:

java - 为什么我们需要序列化对象来将一个 Activity 传递给 Android 中的另一个 Activity

android - 如何使用 robolectric 查找支持库资源?

opencv - Eigenfaces人脸识别训练数据

python - findContour() 检测意外的内部边缘并为它们计算区域 OpenCV python

java - 使用 android studio 更改 JNI 中的 Byte[] 值

android - Android Native Code的定义是什么?

android - 在处理滚动和非滚动 fragment 时,CoordinatorLayout 应该放在 Activity 还是 Fragment 中?

java - 安卓+Appium : Scroll inside ListView to specific position and click on it

c++ - Mat 类 opencv 中的 begin() 方法声明

java - Java内存模型中线程发散 Action 和外部 Action 的例子