簡體   English   中英

錯誤,無法解析符號'vector'

[英]error , Symbol 'vector' could not be resolved

我在linux中使用eclipse開發一個c ++應用程序,我從以下代碼行得到這個編輯器注釋錯誤“符號'向量'無法解析”

std::vector<unsigned char> buffer;

我覺得有些庫缺失或路徑沒有設置。 我明確下載了STL,但沒有用。 我是否必須在我的Linux上重新安裝GCC?

在Eclipse中,右鍵單擊項目名稱...選擇Index ... Rebuild。

我遇到過同樣的問題。 我認為問題源於std :: autocompletion如何更新。 Eclipse應該從Path和Symbols中獲取它,但它可能是錯誤的。 升級gcc后我必須清理所有Eclipse設置(因此,g ++),因為你在Linux中它位於你的主文件夾〜/ .eclipse /下。

從而,

1)清理〜/ .eclipse /后重新啟動Eclipse。

2)檢查路徑和符號(右鍵單擊項目>常規>路徑和符號)包括所有已升級的gcc和c ++包含目錄(向量應位於./gcc/version/include/c++/version/下)

3)重建索引。

4)創建一個* .cpp文件,其中包含顯示錯誤的* .h。 這將迫使Eclipse回溯* .h的依賴關系。

5)根據需要重建索引和/或重啟幾次,現在我可以在std :: autocompletion結束時看到vector。

在此輸入圖像描述 (見圖)

希望能幫助到你!

您需要在程序中包含STL向量定義。 放:

#include <vector>

在文件的頂部,它應該工作。

另請參閱相關問題: Eclipse CDT:無法解析符號'cout'

對我來說,問題是在#include <vector>某處有#include <bits/c++config> ,其中包含的路徑與#include <vector>

即:/ /usr/include/c++/4.6/x86_64-linux-gnu

#include<vector>

應該包括在頂部。

#include <vector>

另外,std :: vector是模板類型,所以你必須使用它

std::vector<char> buffer;

我覺得有些庫缺失或路徑沒有設置。

是的,這聽起來像鏈接器錯誤。 連接符處理符號。

我明確下載了STL,但沒有用。

希望你的意思是libstdc ++,GNU的C ++標准庫的實現,你可能不應該這樣做。 您的工具鏈附帶了正確的stdlib實現。

我是否必須在我的Linux上重新安裝GCC?

可能是明智的。 讓這個安裝處理標准庫。

另外,如果您正在使用編譯命令行,請記住調用g++ 而不是 gcc ; g++自動鏈接C ++運行時和stdlib實現,而gcc是為C設計的。

創建一個*.cpp文件,其中包含顯示錯誤的*.h 這將迫使Eclipse回溯*.h依賴關系。
為我工作......

我知道這個問題已經解決了,但它仍然是谷歌的最佳結果。

使用Eclipse Neon for Linux我用Quick Fix解決了它:

  • 右鍵單擊編輯器中的“向量”,
  • 然后“快速修復”

您的設置中很可能缺少一些特定於系統的包含目錄,這使得索引器無法正確解析iostream,從而導致錯誤。 選擇Index -> Search未解決的項目上下文菜單中的包含將為您提供可在/usr/include搜索的未解析包含列表,並將包含目錄添加到C ++包含項目屬性中的路徑和符號。

在我的系統上,我必須添加/usr/include/c++/4.6/x86_64-linux-gnu/usr/include/c++/4.6/x86_64-linux-gnu bits/c++config.h以及更多目錄。

添加包含目錄后,不要忘記重建索引(索引 - >重建)。

顯然,vector從MinGW的角度來看屬於C ++標准模板庫。 所以除了

 #include <vector>

using namespace std;

在頭文件包含之后。

添加#include <vector>使用命名空間std; 解決了我的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM