我正在开发一个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文件中?
答案 0 :(得分:1)
在目录Application.mk
中创建一个名为projet_dir/jni/
的文件(因此它是projet_dir/jni/Application.mk
)。
将以下行添加到该文件
APP_STL:=stlport_static
如果您遇到shared_ptr错误,请尝试改为使用APP_STL := gnustl_static
。
(我在Linux上遇到了同样的问题,以上解决了这个问题。)