android如何编译lame,ndk编译android的lame库
1、lame c庫(kù):
https://github.com/intervigilium/liblame
下載后解壓,進(jìn)入目錄,terminal里運(yùn)行ndk-build即可
2、lame android庫(kù)
https://github.com/intervigilium/Lame4Android
需要引用上面編譯好的.so文件
3、方法1里的lame的源碼可能不是最新的,我們可以下載最新的lame
http://lame.sourceforge.net/download.php
a、解壓,復(fù)制lame-3.99.5/libmp3lame 到j(luò)ni目錄里,改名為lame
b、拷貝 lame.h (include目錄下),至jni/lame.h
c、創(chuàng)建jni/Android.mk,內(nèi)容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := lame
LOCAL_CLFAGS := -std=c99
LOCAL_LDLIBS := -llog
LOCAL_SRC_FILES := lame/bitstream.c lame/fft.c lame/id3tag.c lame/mpglib_interface.c lame/presets.c lame/quantize.c lame/reservoir.c lame/tables.c lame/util.c lame/VbrTag.c lame/encoder.c lame/gain_analysis.c lame/lame.c lame/newmdct.c lame/psymodel.c lame/quantize_pvt.c lame/set_get.c lame/takehiro.c lame/vbrquantize.c lame/version.c
include $(BUILD_SHARED_LIBRARY)
d、創(chuàng)建jni/Application.mk,內(nèi)容如下
APP_ABI := armeabi armeabi-v7a arm64-v8a x86_64
APP_MODULES := lame
APP_CFLAGS += -DSTDC_HEADERS
#APP_ABI:=x86_64
#APP_PLATFORM := android-21
4、terminal里運(yùn)行ndk-build,編譯后的so文件放在libs里
說明:
Application.mk里要加APP_CFLAGS += -DSTDC_HEADERS,不然會(huì)報(bào)錯(cuò)undefined reference to `bcopy‘等錯(cuò)誤
刪除非.c/.h文件:GNU autotools, Makefile.am Makefile.in libmp3lame_vc8.vcproj logoe.ico depcomp, folders i386 等無用文件。
編輯 jni/utils.h。把extern ieee754_float32_t fast_log2(ieee754_float32_t x);替換為extern float fast_log2(float x);。如果忘了替換,編譯時(shí)會(huì)報(bào)出以下錯(cuò)誤:
[armeabi]?Compile?thumb??:?mp3lame?<=?bitstream.c
In?file?included?from?jni/bitstream.c:36:0:
jni/util.h:574:5:?error:?unknown?type?name?‘ieee754_float32_t‘
jni/util.h:574:40:?error:?unknown?type?name?‘ieee754_float32_t‘
make.exe:?***?[obj/local/armeabi/objs/mp3lame/bitstream.o]?Error?1
總結(jié)
以上是生活随笔為你收集整理的android如何编译lame,ndk编译android的lame库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spark作业提交流程
- 下一篇: java 分词获取词性_jie分词之分词