【问题标题】:How to run ranlib on an archive built through Android.mk?如何在通过 Android.mk 构建的存档上运行 ranlib?
【发布时间】:2016-07-20 07:11:54
【问题描述】:

这出现在我经常使用的几个库中。参见,例如:

在问题中,用户为 OpenSSL 和 Crypto++ 库创建了一个 Android.mk。痛点似乎是用户将 Android.mk 包装器添加到源代码中。

在Android之外,每个项目都是基于Makefile的,每个项目构建一个静态归档,每个项目基于静态归档构建一个共享对象。每个项目还在静态存档上运行ranlib。 Crypto++ 对 ranlib 的需求特别敏感,因为它是一个 C++ 库和 One Definition Rule 违规会导致未定义的行为。

在使用Android.mk构建静态压缩包时,我们如何通过Android.mk在压缩包上运行ranlib?

【问题讨论】:

    标签: android android-ndk archive one-definition-rule


    【解决方案1】:

    我遇到了类似的问题,并在this website 上找到了一个命令,它为我修复了它

    # The -E is important. Root needs some of the user's environment
    $ sudo -E make install CC=$ANDROID_TOOLCHAIN/arm-linux-androideabi-gcc RANLIB=$ANDROID_TOOLCHAIN/arm-linux-androideabi-ranlib
    

    【讨论】:

    • 谢谢。我相信您显示的命令使用 OpenSSL makefile。这个问题试图确定如何在构建时让Android.mk 在存档上运行ranlib。我还相信 OpenSSL makefile 已损坏,因为它在安装期间运行 ranlib 而不是常规的 make [all](或其他目标)。 Make 不应该在 install 目标期间构建组件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-21
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    相关资源
    最近更新 更多