【问题标题】:Android : merging static libraries into single oneAndroid:将静态库合并为一个
【发布时间】:2013-01-30 09:43:21
【问题描述】:

我使用 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

但是当我在 Android NDK makefile 中使用 libAll.a 时,它会说没有索引。

如何添加这个索引?

其他问题:

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

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

谢谢

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 好的,感谢您的回答。你知道我必须使用哪个工具将 .a 合并为一个吗?
    • 您可以尝试ar x 提取所有目标文件并再次ar rs 它们。但是,我不知道这是否会搞砸一些路径。另见stackoverflow.com/questions/3821916/…
    猜你喜欢
    • 2012-06-22
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 2022-11-25
    • 1970-01-01
    • 2012-11-09
    相关资源
    最近更新 更多