在Eclipse for NDK项目中包含c ++标头(Mac)

时间:2014-07-04 14:50:42

标签: android android-ndk java-native-interface eclipse-adt ndk-build

我正在开发一个Android NDK项目,我必须使用需要c ++头文件的功能,例如iostreamsstream等。我已经在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文件中?

1 个答案:

答案 0 :(得分:1)

  1. 在目录Application.mk中创建一个名为projet_dir/jni/的文件(因此它是projet_dir/jni/Application.mk)。

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

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

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