最近在学习ffmpeg移植到安卓,但是ffmpeg编出来的库有好几个,想着合并成一个看着舒服一点,以此记录
将多个静态库合并为一个静态库
先学习两个命令
静态库好比一个压缩包,使用ar x libxxx.a可将里面的.o文件还原
ar x libxxx.a
使用ar rc libtarget.a a.o b.o c.o xxx.o可将多个.o打包为一个.a
ar rc libtarget.a *.o
如果是使用交叉编译的库,需要把ar工具换为交叉编译链接工具里的ar,如下是将ffmpeg的多个静态库合并为一个静态库
NDK=/d/Green_Sorft/Android/Sdk/ndk/21.2.6472646
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/windows-x86_64
AR=$TOOLCHAIN/bin/i686-linux-android-ar
libs=`ls *.a`
for lib in $libs; do
$AR x $lib
done
$AR rc libffmpeg.a *.o