1

我正在开发一个 Android NDK 项目,在该项目中我必须使用需要 c++ 头文件的功能,例如iostream,sstream等。我已经通过添加选项卡在 linux/usr/include/c++/4.7..中做到了这一点。C++ Paths & Symbols但仍然找不到在 Mac 中执行此操作的方法。我尝试了以下方法:

  • 我只是简单地包含了 iostream 标头#include<iostream>,它在使用 ndk-build 构建时显示以下错误,fatal error: iostream: No such file or directory

  • 添加android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.8/include在 中C++ Paths and Symbols->Includes tab->cpp,它不会改变任何东西。

  • 在我的 Android.mk 文件中,

     LOCAL_C_INCLUDES := android-ndk-r9/sources/cxx-stl/gnu-libstdc++/4.8/include
    

    它给出了以下错误:

    致命错误:bits/c++config.h:没有这样的文件或目录

    我也尝试在 Android.mk 文件中添加预构建的共享库,这给出了同样的错误。

  • 然后搜索文件bits/c++config.h,将其复制到它正在寻找的实际位置,它显示相同的错误osdefines.h,我已经复制了它正在寻找的所有文件,最后它要求bits/memoryfwd.h,但我找不到文件在我的 Mac 中的任何位置。

这里的实际问题是什么?我应该怎么做才能在我的 Android NDK 项目的 cpp 文件中包含这些标头?

4

1 回答 1

1
  1. 创建一个Application.mk在目录中调用的文件projet_dir/jni/(就是这样projet_dir/jni/Application.mk)。

  2. 将以下行添加到该文件

    APP_STL:=stlport_static
    
  3. 如果遇到 shared_ptr 错误,请尝试APP_STL := gnustl_static改用。

(我在 Linux 上遇到了同样的问题,上面为我解决了这个问题。)

于 2015-07-29T20:13:40.523 回答