小编Mia*_*ang的帖子

用于android ndk开发的google :: protobuf

我最近尝试将Caffe模型(c ++)的某些预测函数移动到Android平台(ndk级别)这是链接: 这个模型需要OpenCV/OpenCV2google :: protobuf的支持.我已经在Android.mk中包含了OpenCV的所有必需的lib(.a)来编译成.so lib,如下面的java所示(在Android.mk中):

include $(CLEAR_VARS)
LOCAL_MODULE := opencv_features2d
LOCAL_SRC_FILES := libopencv_features2d.a
LOCAL_EXPORT_C_INCLUDES := /home/wm/Downloads/OpenCV-android-sdk/sdk/native/jni/include
include $(PREBUILT_STATIC_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

然后我编译谷歌:: protobuf的-2.5.0在ubuntu14.04的Android的NDK-r11c拿到三个静态库(libprotobuf.a,libprotobuf-lite.a,libprotoc.a),这里的所有脚本build_library .sh:

#!/bin/bash
export NDK=/home/wm/Downloads/android-ndk-r11c
export SYSROOT=$NDK/platforms/android-15/arch-arm/

export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/

export PATH=$PATH:$TOOLCHAIN/bin

#export CC="arm-linux-androideabi-gcc --sysroot $SYSROOT"
export CXX="arm-linux-androideabi-g++ --sysroot $SYSROOT"
export CXXSTL=$NDK/sources/cxx-stl/gnu-libstdc++/4.9

function build_one
{
mkdir build

./configure --prefix=$(pwd)/build \
--host=arm-linux-androideabi \
--with-sysroot=$SYSROOT \
--enable-static \
--disable-shared \
--enable-cross-compile \
--with-protoc=protoc LIBS="-lc-lstdc++" \
# CFLAGS="-march=armv7-a" \
CXXFLAGS="-march=armv7-a -I$CXXSTL/include -I$CXXSTL/libs/armeabi-v7a/include -L$CXXSTL/libs/armeabi-v7a/ -lgnustl_static"

make …
Run Code Online (Sandbox Code Playgroud)

android protocol-buffers android-ndk caffe

3
推荐指数
1
解决办法
1108
查看次数

标签 统计

android ×1

android-ndk ×1

caffe ×1

protocol-buffers ×1