我经常和几个图书馆合作。例如,请参见:
Error SSL archive symbol table (run ranlib)
no archive symbol table (run ranlib) while building libcryptopp.a through ndk-build
在这些问题中,用户为openssl和crypto++库创建了android.mk。痛点似乎是用户在源代码中添加了android.mk包装器。
在android之外,每个项目都基于makefile,每个项目都构建一个静态存档,每个项目都基于静态存档构建一个共享对象。每个项目也在静态存档上运行ranlib。密码++对ranlib的需求特别敏感,因为它是C++库,而One Definition Rule违反导致了未定义的行为。
使用android.mk构建静态存档时,如何通过android.mk在存档上运行ranlib?

最佳答案

我遇到了类似的问题,在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

10-08 15:52