我正在尝试将Bullet Physics集成到现有的SDL2应用程序中。
我有两个问题,
1)我在ndk-build的STL标头中收到编译错误
和
2)Android Studio无法识别libBullet是项目的一部分(Android.mk标记为红色)。
首先目录结构为:
MyApp
jni
Android.mk
Application.mk
SDL2
Android.mk
BULLET
Android.mk
src
Android.mk
main.c
jni / src中的Android.mk具有
LOCAL_SHARED_LIBRARIES := SDL2 \
libBullet
jni中的Android.mk具有
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是静态的呢?