android如何编译lame,ndk编译android的lame库

1、lame c库:

https://github.com/intervigilium/liblame

下载后解压,进入目录,terminal里运行ndk-build即可

2、lame android库

https://github.com/intervigilium/Lame4Android

需要引用上面编译好的.so文件

3、方法1里的lame的源码可能不是最新的,我们可以下载最新的lame

http://lame.sourceforge.net/download.php

a、解压,复制lame-3.99.5/libmp3lame 到jni目录里,改名为lame

b、拷贝 lame.h (include目录下),至jni/lame.h

c、创建jni/Android.mk,内容如下:

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、创建jni/Application.mk,内容如下

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里运行ndk-build,编译后的so文件放在libs里

说明:

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 等无用文件。

编辑 jni/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/mp3lame/bitstream.o] Error 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值