把ffmpeg编译成单独的so文件

在之前的一篇《FFMPEG移植到Android(ubuntu环境下)》讲到如何在android ndk下编译ffmpeg,但这个例子是生成多个so文件的。如果想最后只生成一个libffmpeg.so,要怎样做呢?在Dragon的帮助下,我成功编出来下,下面分享下:

 

其实很简单,就是改一下mk文件:

1、找到ffmpeg/lib*/下的mk文件,把LOCAL_SHARED_LIBRARIES这行注释掉,加上LOCAL_STATIC_LIBRARIES := $(FFLIBS) 这行,然后把最后一行改成include $(BUILD_STATIC_LIBRARY)

 

2、然后把ffmpeg/Android.mk下的LOCAL_SHARED_LIBRARIES改成LOCAL_STATIC_LIBRARIES。

 

OK,重新编译,就会只生成一个libffmpeg.so文件了!

 

另外,在obj下的目录里可以找到lib*那些目录生成的.a静态库。这些库可以被其他的项目调用,用静态库来编译出来的so文件,不再需要依赖这些静态库,但如果用动态库来编的话,新项目生成的so文件是需要同时用到这些动态库的!

你可能感兴趣的:(android,ndk+jni)