Android NDK:无存档符号表(运行ranlib)

ssk*_*ssk 5 java-native-interface android android-ndk

我正在更新项目以使用Android ndk 16b,而以前使用的是12b(工作正常)。更新后,在构建最终的.so时遇到以下错误:

/Users/ssk/code/client/git/thirdparty/android-ndk-r16b/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: jni/../../../shared-library/SharedCommon/build/arm-linux-androideabi/lib/libSharedCommon.a: no archive symbol table (run ranlib)
Run Code Online (Sandbox Code Playgroud)

这导致了许多链接器错误。我尝试了以下答案:

Android NDK:无存档符号表

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

通过ndk-build构建libcryptopp.a时没有存档符号表(运行ranlib)

没有运气。

Dan*_*ert 6

您需要使用GNU AR构建静态库(就像我们在NDK中包含的库一样,与GCC位于同一目录)。达尔文的AR是不会自动执行ranlib任务的BSD AR。