我正在使用eclipse开发一个也使用ndk的Android应用程序。我在我的应用程序中向量,我已经完成了必要的东西,包括
APP_STL:= stlport_static
在我的Application.mk
中一切正常,它编译并运行但是当我使用向量时,Eclipse一直给我错误
std::vector<int> blah
例如,会产生错误。如果我删除错误并继续进行编译并运行正常。
我添加了 $ {NDKROOT} /来源/ CXX-STL / GNU-的libstdc ++ /包括
在C ++ General下的项目配置中 - &gt;路径和符号 - &gt;包括
它解析#include <vector>
很好(在我添加上面的路径之前,我有一个错误)但我仍然使用向量得到错误。
我怎样才能让eclipse停止给我错误?
编辑:
示例错误:Symbol 'vector' could not be resolved
编辑2:
我尝试添加
using namespace std;
然后使用vector blah并导致不同的错误:
无效的模板参数
答案 0 :(得分:13)
我添加了$ {NDKROOT} / sources / cxx-stl / gnu-libstdc ++ / include
在C ++ General下的项目配置中 - &gt;路径和符号 - &gt;包括
是的,就是这样。我试图添加相同的结果。 但是,如果添加stl_port标题
${NDKROOT}/sources/cxx-stl/stlport/stlport
它会做到这一点。当然没有必要改变
APP_STL := stlport_static
因为它仅适用于eclipse索引。在你打算使用gnu-libstdc ++中存在的东西并且不存在stl-port之前,这将是有用的。
答案 1 :(得分:2)
块引用
我正在起诉日食indigo rc2。
我在Android.mk中添加了以下行
LOCAL_C_INCLUDES += ${NDKROOT}/sources/cxx-stl/stlport/stlport
并在Application.mk中添加以下行
APP_STL := stlport_static
然后自动添加我的ndk stlport路径
祝你好运! ^^属性 - &gt; C ++ General - &gt;路径和符号 - &gt;包括
答案 2 :(得分:1)
起初,我们遇到了与map相同的问题,并尝试按照建议添加“路径和符号”,但它仍然无效。
稍后,而不是
#include <map>
我们使用了
#include <stl/_map.h>
错误消失了,然后我们切换回include <map>
。 Eclipse不再抱怨“符号无法解决”。
似乎eclipse有一个缓存,除非你明确地告诉它找到符号的正确位置,否则它会被搞砸。
答案 3 :(得分:0)
我不知道它在哪个阶段起作用,但是:
添加到Application.mk APP_STL := gnustl_static
将include添加到项目属性 - &gt; C / C ++ General - &gt;路径和符号
'NDK root path'/'your directory to android platform'/arch-arm/usr/include
'NDK root path'/sources/cxx-stl/gnu-libstdc++/4.9/include
'NDK root path'/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include/bits
关闭项目属性中的所有警告错误 - > C ++ General-&gt; Code Analisis。
在Ubuntu 15.04中工作。 Eclipse 3.8.1。 Android NDK r10e。