如何在通过Android.mk构建的存档上运行ranlib?

时间:2016-03-31 17:35:49

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

这已经出现在我定期工作的几个图书馆。例如,见:

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

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

使用Android.mk构建静态存档时,如何通过Android.mk在存档上运行ranlib?

1 个答案:

答案 0 :(得分: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