我正在研究一些代码因为我被要求发布关于程序核心部分的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给我这个。 (我还没有解决这个问题)
答案 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