【发布时间】:2016-07-20 07:11:54
【问题描述】:
这出现在我经常使用的几个库中。参见,例如:
- 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。 Crypto++ 对 ranlib 的需求特别敏感,因为它是一个 C++ 库和 One Definition Rule 违规会导致未定义的行为。
在使用Android.mk构建静态压缩包时,我们如何通过Android.mk在压缩包上运行ranlib?
【问题讨论】:
标签: android android-ndk archive one-definition-rule