在ndk环境中构建C ++代码时遇到麻烦w / std :: string

时间:2011-08-21 19:53:35

标签: android-ndk

我正在研究一些代码因为我被要求发布关于程序核心部分的c ++代码。 但是,这是我第一次使用ndk,我遇到了一些麻烦并解决了这个问题。 但是,问题太复杂了。我用w / ndk构建了我的c ++代码,但是, 它说,

.h:3:20:错误:字符串:没有这样的文件或目录 .h:5:错误:'std :: string'尚未声明

以及任何其他错误。 下面是我写的'Android.mk'文件:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE    := clibs
LOCAL_SRC_FILES := sqlite3.c
LOCAL_LDLIBS    := -llog
include $(BUILD_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_DEFAULT_CPP_EXTENSION := cpp
LOCAL_MODULE    := mytweetlib
LOCAL_STATIC_LIBRARIES := clibs
LOCAL_SRC_FILES := Friend.cpp SQLiteDB.cpp Cursor.cpp DB4Friends.cpp ResultParser.cpp MyTweet.cpp Stub.cpp
include $(BUILD_SHARED_LIBRARY) 

我试图链接.c文件(sqlite3.c)使静态库文件与其他文件(要构建到共享库)。 有没有人知道这件事?即使它只是一点点线索,plz给我这个。 (我还没有解决这个问题)

2 个答案:

答案 0 :(得分:7)

看起来NDK没有被告知使用stl端口。

尝试添加包含APP_STL的Application.mk文件。这会将stlport标头添加到包含路径,并链接到库。

APP_STL := stlport_static

答案 1 :(得分:3)

我想进一步补充Piklor的回答。 不要将“Android.mk”文件与“Application.mk”混淆,放在jni文件夹中。 你的include也应该包含string而不是string.h