Android Studio Project не распознает внешнюю C ++ lib? - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь включить Bullet Physics в существующее приложение SDL2.

У меня две проблемы,

1) Я получаю ошибку компиляции в заголовках STL ndk-build

и

2) Android Studio не распознает, что libBullet является частью проекта (Android.mk помечен красным).

Сначала структура каталогов:

MyApp
     jni
          Android.mk
          Application.mk
          SDL2
               Android.mk
          BULLET
               Android.mk               
          src
               Android.mk                
               main.c

Android.mk в jni / src имеет

LOCAL_SHARED_LIBRARIES := SDL2 \
                          libBullet

Android.mk в jni имеет

include $(call all-subdir-makefiles)

У меня нет, как еще включитьlibBullet?

Второй. Хотя Android Studio не распознает, что libBullet является частью проекта, она пытается скомпилировать в соответствии со списком файлов из Android.mk

. Я получаю следующую ошибку:

 In file included from ~/src/Test/myapp/app/jni/libBullet/src/LinearMath/btThreads.cpp:17:
 In file included from /home/klejs/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/algorithm:643:
 In file included from /home/klejs/Android/Sdk/ndk-bundle/sources/cxx-stl/system/include/utility:36:
 ~/Android/Sdk/ndk-bundle/sources/cxx-stl/system/include/stl_pair.h:86:30: 
 error: no template named 'pair'
 inline bool operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)

Я не очень понимаю, что здесь происходит, код прекрасно компилируется при компиляции для нативного Linux, и я не изменил никакого кода.

Я думаю, может быть, что-то такое, что SDL2 используется совместно, а Bullet статичен?

...