Android NDK: нет таблицы символов архива (запустите ranlib) - PullRequest
0 голосов
/ 19 сентября 2018

Я обновляю свои проекты, чтобы использовать 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)

Это приводит к куче ошибок компоновщика.Я попробовал следующие ответы:

Android NDK: нет таблицы символов архива

Как запустить ranlib для архива, созданного через Android.mk?

нет таблицы символов архива (запустите ranlib) при сборке libcryptopp.a через ndk-build

без удачи.

Ответы [ 2 ]

0 голосов
/ 08 июля 2019

При кросс-компиляции библиотеки для Android я сталкиваюсь с подобной проблемой.

Проблема возникла из-за того, что я не указал инструмент ranlib для кросс-компиляции, и он отказался от использования по умолчанию в системе сборки, котораяx86.

Проблема решена путем указания ranlib на arm-linux-androideabi-ranlib на этапе конфигурации перед компиляцией.

0 голосов
/ 20 сентября 2018

Вам необходимо собрать статические библиотеки с помощью GNU AR (например, ту, которую мы включили в NDK, в том же каталоге, что и GCC).AR Дарвина - это AR BSD, который не выполняет автоматически задачи ranlib.

...