opus編譯Android SO庫
下載源碼
點(diǎn)擊下載 libopus 1.3.1
編譯
本人編譯環(huán)境:Ubuntu 20.04
NDK版本:r21c
- 解壓下載好的源碼况木,在根路徑創(chuàng)建 Android.mk弄屡,內(nèi)容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# 我使用的是NDK r21c
# NDK 17及以上不再支持ABIs [mips64, armeabi, mips]
# APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
# 直接編譯所有類型
APP_ABI := all
APP_CPPFLAGS += -std=c++11
APP_STL := gnustl_shared
APP_PLATFORM := android-21
include $(LOCAL_PATH)/celt_sources.mk
include $(LOCAL_PATH)/silk_sources.mk
include $(LOCAL_PATH)/opus_sources.mk
LOCAL_MODULE := opus
# Fixed point sources
SILK_SOURCES += $(SILK_SOURCES_FIXED)
# ARM build
CELT_SOURCES += $(CELT_SOURCES_ARM)
SILK_SOURCES += $(SILK_SOURCES_ARM)
LOCAL_SRC_FILES := \
$(CELT_SOURCES) $(SILK_SOURCES) $(OPUS_SOURCES) $(OPUS_SOURCES_FLOAT)
LOCAL_LDLIBS := -lm -llog
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/include \
$(LOCAL_PATH)/silk \
$(LOCAL_PATH)/silk/fixed \
$(LOCAL_PATH)/celt
LOCAL_CFLAGS := -DNULL=0 -DSOCKLEN_T=socklen_t -DLOCALE_NOT_USED -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
LOCAL_CFLAGS += -Drestrict='' -D__EMX__ -DOPUS_BUILD -DFIXED_POINT -DUSE_ALLOCA -DHAVE_LRINT -DHAVE_LRINTF -O3 -fno-math-errno
LOCAL_CPPFLAGS := -DBSD=1
LOCAL_CPPFLAGS += -ffast-math -O3 -funroll-loops
include $(BUILD_SHARED_LIBRARY)
- 在根路徑下運(yùn)行如下命令進(jìn)行編譯
# 需要你配置好NDK環(huán)境變量,否則ndk-build你需要使用絕對路徑
ndk-build APP_BUILD_SCRIPT=Android.mk NDK_PROJECT_PATH=.
- 編譯完成绞佩,在根路徑下生成 obj/local/文件驮审,編譯好的so庫在該文件夾內(nèi)