ndk stl编译问题

莫失莫忘 2011-09-13 07:29:12
我用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文件中定义的一些东西,然后这个问题现在怎么也解决不了,有没有人可以帮我解决一下,谢谢大家!
...全文
469 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
warpo 2011-09-20
  • 打赏
  • 举报
回复
改成APP_STL := gnustl_static
然后把
APP_CPPFLAGS += -fexceptions
APP_CPPFLAGS += -frtti
都注释掉.

试试.
jeky_zhang2013 2011-09-16
  • 打赏
  • 举报
回复
帮顶下,没弄过NDK
cbib_cat 2011-09-16
  • 打赏
  • 举报
回复
哥们,问题解决了没?我也遇到同样的问题,不知如何是好。

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧