[英]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.