0

我正在尝试为 android 构建 CLM。我创建 Android.mk 文件,同时构建它的抛出异常我的 android.mk 文件看起来像这样

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=SHARED

include /Documents/adt-bundle-mac-x86_64-20140702/OpenCV-3.0.0-android-sdk/sdk/native/jni/OpenCV.mk

LOCAL_MODULE    := CLM

LOCAL_SRC_FILES := CCNF_patch_expert.cpp CLM_utils.cpp CLM.cpp CLMTracker.cpp DetectionValidator.cpp Patch_experts.cpp PAW.cpp PDM.cpp SVR_patch_expert.cpp

LOCAL_C_INCLUDES := /Documents/Mk/C-Projects/CLM/include\
                    /Documents/adt-bundle-mac-x86_64-20140702/OpenCV-3.0.0-android-sdk/sdk/native/jni/include\
                    /Documents/adt-bundle-mac-x86_64-20140702/OpenCV-3.0.0-android-sdk/sdk/native/jni/include/opencv\
                    /Documents/Mk/C-Projects/CLM/eigen3



LOCAL_LDLIBS     += -llog -ldl

include $(BUILD_SHARED_LIBRARY) 

构建这个 mk 文件文件我遇到了异常

在 /Documents/Mk/C-Projects/CLM/include/CLM_utils.h:9:0 包含的文件中,来自 jni/CCNF_patch_expert.cpp:3:/Documents/Mk/C-Projects/CLM/include/CLM.h :170:15: 错误: '&&' 标记 CLM(const CLM&& other) 之前的预期',' 或'...' ^ /Documents/Mk/C-Projects/CLM/include/CLM.h:170:23:错误:无效的构造函数;你可能的意思是'CLMTracker::CLM (const CLMTracker::CLM&)' CLM(const CLM&& other) ^ /Users/hubmaci7/Documents/Mourish/SWIG/C-Projects/CLM/include/CLM.h:192:28:错误:在 '&&' 标记 CLM & operator= (const CLM&& other) 之前预期的 ',' 或 '...' ^ /Documents/Mk/C-Projects/CLM/include/CLM.h: 在复制构造函数 'CLMTracker: :CL::
for(std::map>::const_iterator it = other.kde_resp_precalc.begin(); it!= other.kde_resp_precalc.end(); it++) ^ /Documents/Mourish/SWIG/C-Projects/CLM/include/CLM .h:124:60: 错误: '>>' 应该是 '> >' 在嵌套模板参数列表中 this->kde_resp_precalc.insert(std::pair>(it->first, it->second.clone( )));^ /Documents/Mk/C-Projects/CLM/include/CLM.h:在成员函数'CLMTracker::CLM& CLMTracker::CLM::operator=(const CLMTracker::CLM&)'中:/Documents/Mk/C- Projects/CLM/include/CLM.h:158:33: 错误:'>>' 应该是 '> >' 在嵌套模板参数列表中 for(std::map>::const_iterator it = other.kde_resp_precalc.begin( ); 它!= 其他。kde_resp_precalc.end(); 它++)

请帮我找到正确的解决方案来为 android 构建 clm

4

1 回答 1

0

我得到了使用 Androidndk 在 android 中构建 CLM 的答案。在 Application.mk 文件中,我犯了一个错误,我没有添加 CPP_FLAGS -std=c++11。

我的 Application.mk 文件看起来像这样

APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions -std=c++11

APP_ABI := armeabi-v7a
APP_PLATFORM := android-9

最后我为 CLM 构建了这么一代

于 2015-05-11T10:31:30.740 回答