我用ndk-build编译一个使用到了STL的C++工程
Android.mk如下LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := core
LOCAL_SRC_FILES := \
    core/zutil.cc \
    core/alloc.cpp \
    ...
    core/tables.cpp    
LOCAL_LDLIBS    := -lm -llog
include $(BUILD_SHARED_LIBRARY)
Application.mk如下
APP_STL  :=  stlport_shared
APP_CPPFLAGS += -fexceptions
APP_CPPFLAGS += -frtti
编译之后出错,找不到ext/atomicity.h
我在系统中找到这个文件,又需要bit/c++alloc.h等文件,我又在Android.mk文件中加入一句话
LOCAL_C_INCLUDES := /home/dyb/dev-tools/android-ndk-r6b/sources/cxx-stl/gnu-libstdc++/libs/armeabi/include
这样就可以编译了,编译之后仍然出错,部分出错信息如下
StaticLibrary  : libstdc++.a
Prebuilt       : libstlport_shared.so <= <NDK>/sources/cxx-stl/stlport/libs/armeabi/
SharedLibrary  : libcore.so
/home/dyb/Develop/Stitching/obj/local/armeabi/objs/core/core/arithm.o: In function `cv::Mat::~Mat()':
arithm.cpp:(.text._ZN2cv3MatD1Ev[cv::Mat::~Mat()]+0xe): undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'应该是ext/atomicity.h文件中定义的一些东西,然后这个问题现在怎么也解决不了,有没有人可以帮我解决一下,谢谢大家!