Android NDK编译lame
16lz
2021-01-23
编译lame
下载最新的lame
http://lame.sourceforge.net/download.php
拷贝 lame.h (include目录下),至libmp3目录下
创建Android.mk,内容如下:
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := lameLOCAL_CLFAGS := -std=c99LOCAL_LDLIBS := -llogLOCAL_SRC_FILES := bitstream.c fft.c id3tag.c mpglib_interface.c presets.c quantize.c reservoir.c tables.c util.c VbrTag.c encoder.c gain_analysis.c lame.c newmdct.c psymodel.c quantize_pvt.c set_get.c takehiro.c vbrquantize.c version.cinclude $(BUILD_SHARED_LIBRARY)
创建Application.mk,内容如下
APP_ABI := armeabi-v7a arm64-v8a x86_64APP_MODULES := lameAPP_CFLAGS += -DSTDC_HEADERS#APP_ABI:=x86_64#APP_PLATFORM := android-21
执行
ndk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=Application.mk APP_BUILD_SCRIPT=Android.mk
说明:
Application.mk里要加
APP_CFLAGS += -DSTDC_HEADERS
不然会报出
undefined reference to `bcopy'
等错误
删除非.c/.h文件:GNU autotools, Makefile.am Makefile.in libmp3lame_vc8.vcproj logoe.ico depcomp, folders i386 等无用文件。
编辑 utils.h。把
extern ieee754_float32_t fast_log2(ieee754_float32_t x);
替换为
extern float fast_log2(float x);
如果忘了替换,编译时会报出以下错误:
[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/mp3bitstream.o] Error 1
更多相关文章
- Android Studio Gradle多渠道打包(动态设定App名称,应用图标,背景
- Android EditText输入内容时挤压上面的activity的解决办法
- 解决INSTALL_FAILED_INSUFFICIENT_STORAGE调试错误的解决
- Android中的文件上传下载
- Android 广播获取短信内容
- android客户端从服务器端下载文件,服务端返回文件流(文件不在项目