Проблема w / std :: string при сборке кода C ++ в среде ndk - PullRequest
3 голосов
/ 21 августа 2011

Я работаю над некоторым кодом, потому что меня попросили разработать код на С ++ для основной части программы.Но я впервые использую ndk, поэтому у меня возникли проблемы, и я решил их.Тем не менее, слишком сложная проблема приходит ко мне.Я собирал свой код на C ++ w / ndk, но, как было сказано,

.h: 3: 20: ошибка: строка: Нет такого файла или каталога .h: 5: ошибка: 'std ::строка 'не была объявлена ​​

и любые другие ошибки по этому поводу.Ниже приведен мой файл «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) Создание статического файла библиотеки с другим файлом (для создания в общей библиотеке).).Кто-нибудь знает об этом?Даже если это очень мало, пожалуйста, дайте мне это.(Я не решал эту проблему)

Ответы [ 2 ]

7 голосов
/ 25 октября 2011

Похоже, NDK не говорят использовать порт stl.

Попробуйте добавить файл Application.mk, содержащий APP_STL. Это добавляет заголовки stlport к пути включения и ссылки на библиотеки.

APP_STL := stlport_static
3 голосов
/ 21 марта 2013

Я хотел бы добавить к ответу Пиклора.Не путайте файл «Android.mk» с «Application.mk» в папке jni.Также ваше включение должно включать строку, а не string.h

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...