Неопределенный символ при связывании статической библиотеки с Android NDKAndroid

Форум для тех, кто программирует под Android
Ответить
Гость
 Неопределенный символ при связывании статической библиотеки с Android NDK

Сообщение Гость »


Я использую проект Gradle, предоставленный репозиторием SDL, для использования со сборками Android. Сам по себе проект прекрасно собирается с полным доступом к SDL. Но у меня есть статическая библиотека, которую я пытаюсь связать с этим проектом и которая отвечает за логику приложения.

Иерархия моих приложений выглядит следующим образом:

app/jni/src/arm64-v8a/libsdl-test-arm64-v8a.a приложение/jni/src/armeabi-v7a/libsdl-test-armeabi-v7a.a приложение/jni/src/x86/libsdl-test-x86.a приложение/jni/src/x86_64/libsdl-test-x86_64.a приложение/jni/src/Android.mk app/jni/src/main.c // вызывает appInit, определенный статической библиотекой app/jni/src/sdl-test.h // объявляет void appInit(); Как я уже узнал, для подключения статической библиотеки необходимо изменить файл Android.mk. Вот мой: https://pastebin.com/qhNCyc0c (библиотека написана на Zig, отсюда и запутанный комментарий)

При запуске на Android я получаю следующую ошибку:

ld: ошибка: неопределенный символ: appInit >>> на который ссылается main.c:5 (jni/src/main.c:5) >>> /Users/mak/dev/zig/sdl-test/android/android-template/app/build/intermediates/cxx/Debug/29445a3u/obj/local/arm64-v8a/objs-debug/main/main. о:(основной) Я могу подтвердить, что библиотека имеет правильную архитектуру, запустив file для объектного файла, использованного для ее создания:

libsdl-test-arm64-v8a.a.o: ELF, 64-битный LSB, перемещаемый, ARM aarch64, версия 1 (SYSV), с debug_info, не удаленный Что мне здесь не хватает?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»