J'utilise Eclipse sous Linux pour développer une application c ++ et j'obtiens l'erreur d'annotation de l'éditeur "Le 'vecteur' 'n'a pas pu être résolu" à partir des lignes de code
std::vector<unsigned char> buffer;
J'ai l'impression qu'il manque une bibliothèque ou que les chemins ne sont pas définis. J'ai explicitement téléchargé STL mais cela ne sert à rien. Dois-je réinstaller GCC sur mon Linux?
Dans Eclipse, cliquez avec le bouton droit sur le nom du projet ... Sélectionnez Index ... Reconstruire.
J'ai eu le même problème. Je crois que le problème provient de la mise à jour de std :: autocompletion. Eclipse devrait l'obtenir à partir du chemin et des symboles, mais cela pourrait être un buggy. J'ai dû nettoyer tous les paramètres Eclipse après la mise à niveau de gcc (donc, g ++), puisque vous êtes sous Linux, il se trouve sous votre dossier personnel ~/.Eclipse /.
Ainsi,
1) Eclipse redémarré après le nettoyage de ~/.Eclipse /.
2) vérifié que Path et Symbols (sous clic droit sur project> General> Path et Symbols) incluaient tous les répertoires d'inclusion améliorés gcc et c ++ (le vecteur devait être sous ./gcc/version/include/c++/version/
3) Reconstruire l'index.
4) Création d'un fichier * .cpp contenant le fichier * .h où l'erreur est affichée. Cela forcera Eclipse à reconstituer les dépendances pour * .h.
5) Reconstruisez l'index et/ou redémarrez plusieurs fois si nécessaire, je peux maintenant voir le vecteur à la fin de std :: autocompletion.
(voir l'image)
J'espère que ça aide!
Vous devez inclure la définition du vecteur STL dans votre programme. Mettre:
#include <vector>
en haut de votre fichier et cela devrait fonctionner.
Voir aussi question connexe: CDT Eclipse: le symbole 'cout' n'a pas pu être résolu
pour moi le problème était que dans #include <vector>
quelque part il y a #include <bits/c++config>
qui a un chemin d'inclusion différent de #include <vector>
i.e .: /usr/include/c++/4.6/x86_64-linux-gnu
#include<vector>
devrait être inclus en haut.
#include <vector>
De plus, std :: vector est un type de template, vous devez donc l’utiliser comme
std::vector<char> buffer;
J'ai l'impression qu'il manque une bibliothèque ou que les chemins ne sont pas définis.
Oui, cela ressemble à une erreur de l'éditeur de liens. Les linkers traitent des symboles.
J'ai explicitement téléchargé STL mais cela ne sert à rien.
J'espère que vous parlez de libstdc ++, de la mise en œuvre par GNU de la bibliothèque standard C++, et vous n'auriez probablement pas dû le faire. Votre chaîne d'outils est fournie avec la bonne implémentation de stdlib.
Dois-je réinstaller GCC sur mon Linux?
Probablement sage. Et laissez cette installation gérer la bibliothèque standard.
De plus, si vous jouez avec votre ligne de commande de compilation, n'oubliez pas d'appeler g++
not gcc
; g++
est automatiquement lié aux implémentations d'exécution C++ et stdlib, alors que gcc
est conçu pour C.
Création d'un fichier *.cpp
contenant le *.h
où l'erreur est affichée. Cela forcera Eclipse à retracer les dépendances pour *.h
.
Travaille pour moi ...
Il est fort probable que certains paramètres d’inclusion spécifiques au système manquent dans vos paramètres, ce qui empêche l’indexeur d’analyser correctement iostream, et donc les erreurs. Si vous sélectionnez Index -> Search
pour les inclusions non résolues dans le menu contextuel du projet, vous obtiendrez la liste des inclusions non résolues que vous pouvez rechercher dans /usr/include
et ajouter des répertoires contenant des chemins d'accès et des symboles C++ dans les propriétés du projet.
Sur mon système, j'ai dû ajouter /usr/include/c++/4.6/x86_64-linux-gnu
pour bits/c++config.h
à résoudre et quelques répertoires supplémentaires.
N'oubliez pas de reconstruire l'index (Index -> Reconstruire) après avoir ajouté les répertoires d'inclusion.
Apparemment, le vecteur appartient à la bibliothèque de modèles standard C++ du point de vue de MinGW. donc en plus de
#include <vector>
Ajouter
using namespace std;
après les inclusions du fichier d'en-tête.
Je sais que ce problème a déjà été résolu, mais il apparaît toujours comme le meilleur résultat sur Google.
Utilisation de Eclipse Neon pour Linux Je l’ai résolu avecQuick Fix
: