Android:将静态库合并为单个库

时间:2013-01-30 09:43:21

标签: android merge android-ndk static-libraries ar

我使用Android NDK r8使用 include $(BUILD_STATIC_LIBRARY)生成多个静态库,并成功获取:lib1.a,lib2.a,lib3.a等。

现在我想将这些静态库合并为单个库。

我尝试使用Android NDK中的ar.exe:

android-ndk-r8\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\arm-linux-androideabi\bin\ar.exe r libALL.a lib1.a lib2.a lib3.a

但是当我将 libAll.a 用于Android NDK makefile时,它没有说没有索引。

如何添加此索引?

其他问题:

当我显示存档 libAll.a 的内容时,我看到 lib1.a lib2.a lib3.a 而不是这些库中的 .o 符号。

如何更改(=从静态库中提取.o以将其合并到libAll.a中)?

由于

1 个答案:

答案 0 :(得分:1)

ar只是一个像zip这样的归档工具。它接收给定的输入文件并生成.a存档。如果要将所有.o个文件包含在单个存档中,则必须指定每个单独的文件。我不知道如何在WIndows上执行此操作,但在Linux上,您可以使用类似ar rs $(find . -name *.o)的内容。