android external/stlport включить в сборку Android.mk не удалось
Я пытаюсь создать приложение с источником Android-Froyo, в котором я использую skia
а также stl
шаблоны,
Я включил
MY_INCLUDES=external/zlib external/jpeg external/freetype/include \
frameworks/base/core/jni/android/graphics external/skia/include/core \
external/libpng external/expat/lib <b>external/stlport/stlport</b>
libstlport_cflags := -D_GNU_SOURCE
libstlport_cppflags := -fuse-cxa-atexit
LOCAL_CPPFLAGS := $(libstlport_cppflags)
include $(BUILD_STATIC_LIBRARY)
Я получаю следующую ошибку при попытке создать исходный код Android с помощью этого приложения, которое я хранил в пакетах / приложениях:
external / stlport / stlport / stl / _new.h: 47: 50: ошибка: libstdC++/include/new: такого файла или каталога нет
Пожалуйста, направьте меня, чтобы исправить эту проблему.
Спасибо
Мохит
3 ответа
Как я понимаю, файл, который не может быть найден препроцессором, находится в bionic
папка.
У меня была та же проблема, и я решил ее, добавив следующую строку:
LOCAL_C_INCLUDES += bionic
Я не пробовал это с Android 2.2, но я использую Android Kitkat (4.4).
Чтобы получить stlport
библиотека работает с нашим проектом, мы включили его в наш проектAndroid.mk
как так:
include external/stlport/libstlport.mk
Это предполагает, что на Froyo есть файл libstlport.mk для включения в ваш процесс сборки. В 4.4 также есть файл Android.mk, но он также собирает и другой код и создает stlport в виде статической библиотеки (а это не то, что мы хотели).
Вам также может понадобиться добавить каталог include, например: external/stlport/stlport
,
cpp
#include <stdio.h>
// The code
// The set of definitions and includes for STLPort
// They used defined() instead of #ifdef.
#define _STLP_HAS_INCLUDE_NEXT 1
#define _STLP_USE_MALLOC 1
#define _STLP_USE_NO_IOSTREAMS 1
#include <stl/config/_android.h>
#include <map>
#include <string>
int main(void)
{
std::string a = "abc";
printf("%s",a.c_str());
return 0;
}
Android.mk
# A simple test for the minimal standard C++ library
#
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := test-libstl.cpp
LOCAL_C_INCLUDES += sources/cxx-stl/stlport/stlport
LOCAL_SHARED_LIBRARIES += libstlport
LOCAL_MODULE := test-libstl
include $(BUILD_EXECUTABLE)