因为MAC下 $(SYSROOT)/usr/include调取的是Mac的include (The problem is that the include file in /usr/include are for Mac OS X)
我的方法:
在 android.mk 的LOCAL_C_INCLUDES中去掉$(SYSROOT)/usr/include,
在application.mk中有APP_STL := gnustl_static。
完整文件如下
Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_C_INCLUDES += \
${NDK_DIR}/sources/cxx-stl/stlport \
$(JNI_H_INCLUDE)
LOCAL_SHARED_LIBRARIES += \
libutils
LOCAL_CFLAGS += -O3 -fstrict-aliasing\
-fexceptions -frtti\
-DANDROID_NDK \
-D_STLP_HAS_WCHAR_T \
-DDISABLE_IMPORTGL
LOCAL_MODULE := ddz
LOCAL_SRC_FILES := Socket32.cpp \
GB2Unicode.cpp \
DDzData.cpp \
MD5Checksum.cpp \
biostream.cpp \
TaoJNI.cpp
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -ldl -llog
LOCAL_STATIC_LIBRARIES += -llog\
-L libstlport_static.a
include $(BUILD_SHARED_LIBRARY)
Application.mk:
APP_ABI := armeabi armeabi-v7a
APP_CPPFLAGS += -fexceptions
APP_STL := gnustl_static
APP_CPPFLAGS += -frtti