2011-10-05 56 views
10

我使用eclipse開發了一個也使用了ndk的android應用程序。我在我的應用程序的載體和我做了必要的東西通過包括修復使用Android NDK和std ::時發生的Eclipse錯誤:: vector

APP_STL讓他們:= stlport_static

在我Application.mk

一切正常就可以編譯和運行但是Eclipse保持當我使用矢量時給我錯誤

std::vector<int> blah 

例如創建一個錯誤。如果我刪除錯誤並繼續編譯並運行良好。

我添加 $ {NDKROOT} /來源/ CXX-STL/GNU-的libstdC++ /包括

在在C++一般我的項目配置 - >路徑和符號 - >包括

它解決#include <vector>罰款(在我添加上面的路徑之前,我有這個錯誤),但我仍然使用向量錯誤。

我怎樣才能得到日食停止給我這個錯誤?

編輯:

例如錯誤:Symbol 'vector' could not be resolved

編輯2:

我試圖添加

using namespace std; 

,然後使用矢量等等以及使一個不同的錯誤:

Invalid template arguments

+1

你在你的問題中提到7次單詞「錯誤」,但完全不能說*實際錯誤是*! – richq

+0

你是對的我已經更新了具體錯誤的問題。 – nkassis

+0

啊,好的。我想我知道問題在這裏,但我不知道解決方案是什麼。它*聽起來像*你在混合Java和C++,但是C++部分已經有點「困惑」了。同樣的事情發生在筆直的C上。我放棄了並回到了Vim,但如果你想堅持使用Eclipse,這並不完全有用。 – richq

回答

13

I've added ${NDKROOT}/sources/cxx-stl/gnu-libstdc++/include

In my project config under C++ General -> Paths and Symbols -> include

是的,就是這樣。我試着添加相同的結果。 但是,如果添加stl_port頭

${NDKROOT}/sources/cxx-stl/stlport/stlport 

它會做的伎倆。當然它沒有必要改變

APP_STL := stlport_static 

因爲它只在eclipse索引中工作。在你打算使用gnu-libstdC++中存在的東西並且不存在stl-port之前,它將是有用的。

+0

嗯,我我正在使用stlport和$ {NDKROOT}/sources/cxx-stl/stlport/stlport的路徑,但我仍然收到錯誤:Symbol'vector'無法解析 – j00hi

2

Blockquote

我在起訴eclipse indigo rc2。

我在Android.mk

LOCAL_C_INCLUDES += ${NDKROOT}/sources/cxx-stl/stlport/stlport 

,並添加添加以下行按照應用線。MK

APP_STL := stlport_static 

然後自動NDK我路徑的STLport加入

Properties -> C++ General -> Paths and Symbols -> include

好運! ^^

1

起初,我們遇到了與地圖相同的問題,並嘗試添加「路徑和符號」建議,但它仍然無法正常工作。

後來,而非

#include <map> 

我們使用

#include <stl/_map.h> 

錯誤走開了,然後我們切換回include <map>。 Eclipse不再抱怨「Symbol無法解析」。

看來eclipse有一個緩存,不知怎的,它可以搞砸了,除非你明確地告訴它找到符號的正確位置。

0

我不知道它的工作是什麼階段,但:

  1. 添加到Application.mk APP_STL := gnustl_static

  2. 包括添加到項目屬性 - > C/C++常規 - >路徑和符號
    '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

  3. 關閉項目屬性 - > C++ General-> Code Analisis中的所有警告錯誤。

  4. 項目屬性 - > C++生成 - >生成器設置 - >取消選中使用默認生成命令。構建命令集爲空。
  5. Next配置NDK生成器:項目屬性 - >建設者 - >新建 - >程序和填充名稱(您的名字構建conf),位置(NDK根目錄的路徑),工作目錄(項目目錄的路徑)。 - >刷新並檢查特定資源(項目中的libs文件夾)。 - >構建選項檢查指定相關資源的工作集並使用源更改'jni'文件夾。

曾在Ubuntu 15.04中工作。 Eclipse 3.8.1。 Android NDK r10e。