Я скомпилировал Sox et al с NDK.Итак, у меня есть все совместимые с Android совместимые библиотеки.
Я создал простой тестовый файл , который вызывает функцию sox.Сборка NDK говорит мне:
undefined reference to `sox_open_read'
sox_open_read определен в sox.h.Я знаю, что он находит sox.h, потому что он дает мне предупреждение об этом файле:
In file included from (...)/sox/sox.h:19
Так что, возможно, он захочет найти sox_open_read в реальном libsox.so.Ну, я попробовал около 100 различных способов сказать, где находится общая библиотека sox, например,
LOCAL_SHARED_LIBRARY := sox
LOCAL_LDLIBS := -L$(LOCAL_PATH_FULL)/jni/libs/libsox.so
Однако, это будет работать, если я укажу Sox в качестве статической библиотеки:
#LOCAL_SHARED_LIBRARY := sox
LOCAL_STATIC_LIBRARIES := sox
LOCAL_LDLIBS := -L$(LOCAL_PATH_FULL)/jni/libs/libsox.so
Насколько я понимаю, я не хочу статически ссылаться на sox lib - я хочу динамически ссылаться на него.