在linux环境下编译android so库

时间:2022-12-12 09:13:31

(1) 配置Android NDK环境

(2) mk文件编写

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
# OpenCV
OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=STATIC
#include D:\project\Android\OpenCV-2.4.10-android-sdk\sdk\native\jni\OpenCV.mk
include $(LOCAL_PATH)/opencv_android/jni/OpenCV.mk

LOCAL_MODULE    := facequality              
LOCAL_SRC_FILES += facequality.cpp 
    
LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
LOCAL_CFLAGS += -ffast-math -lpthread -ldl -O3 -std=c++11
LOCAL_CFLAGS += -DBUILD_TBB=ON -DWITH_TBB=ON
LOCAL_LDFLAGS += -Wl,--gc-sections

LOCAL_CFLAGS += -fopenmp
LOCAL_CPPFLAGS += -fopenmp
LOCAL_LDFLAGS += -fopenmp

LOCAL_LDLIBS += -lz -llog -ljnigraphics

include $(BUILD_SHARED_LIBRARY)

(3) 目录文件

(4) 编译

$ ndk-build
[arm64-v8a] Compile++ : facequality <= facequality.cpp
jni/facequality.cpp:116:1: warning: control may reach end of non-void function [-Wreturn-type]
}
^
1 warning generated.
[arm64-v8a] SharedLibrary : libfacequality.so
[arm64-v8a] Install : libfacequality.so => libs/arm64-v8a/libfacequality.so