2011-08-21 23 views
3

我正在編寫一些代碼cuz我被要求關於程序的核心部分使用C++代碼。 但是,這是我第一次使用ndk,所以我遇到了一些麻煩並且解決了這個問題。 但是,太困難的問題來了。我建設我的C++代碼瓦特/ NDK但是, 它說,在ndk環境中構建C++代碼時遇到問題w/std :: string

.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)(待建到共享庫) 。 有沒有人知道這件事?即使它只是非常小的線索,請給我。 (我還沒有解決這個問題)

回答

7

它看起來像NDK不被告知使用STL端口。

嘗試添加一個包含APP_STL的Application.mk文件。這將stlport頭添加到包含路徑,並鏈接到庫。

APP_STL := stlport_static 
3

我想進一步添加到Piklor的答案。 請勿在jni文件夾中將「Android.mk」文件與「Application.mk」混淆。 另外你的包含應該包括字符串不是string.h

相關問題