2

私が使用しているandroid-froyoソースskiastlテンプレートを使用してアプリを構築しようとしていますが、

含めました

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 ソースをビルドしようとすると、次のエラーが発生します。これは、packages/apps に保存されています。

external/stlport/stlport/stl/_new.h:47:50: エラー: libstdc++/include/new: そのようなファイルまたはディレクトリはありません

この問題を修正するために私を導いてください。

ありがとう

モヒット

4

3 に答える 3

7

私が理解しているように、プリプロセッサで見つからないファイルはbionicフォルダーにあります。

同じ問題があり、次の行を追加して解決しました。

LOCAL_C_INCLUDES += bionic
于 2013-01-25T09:39:19.067 に答える
3

Android 2.2 でこれを試したことはありませんが、Android Kitkat (4.4) を使用しています。

stlportライブラリをプロジェクトで動作させるために、次のようにプロジェクトに含めましAndroid.mk

include external/stlport/libstlport.mk

これは、Froyo に、ビルド プロセスに含める libstlport.mk ファイルがあることを前提としています。4.4 には Android.mk ファイルもありますが、それは他のコードもビルドし、stlport を静的ライブラリとしてビルドします (これは私たちが望んでいたものではありません)。

次のようなインクルード ディレクトリも追加する必要がある場合がありますexternal/stlport/stlport

于 2014-09-19T15:50:13.420 に答える
1
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)
于 2011-11-03T12:05:39.093 に答える