web-dev-qa-db-fra.com

Eclipse CDT: inclusion non résolue de l'en-tête stl

J'essaie d'utiliser Eclipse pour éditer des sources, compilées sous C++ Builder, mais bloquées avec le problème Unresolved inclusion.

Par exemple, un code comme:

#include <vector>

Donne une erreur Unresolved inclusion: <vector> dans Eclipse IDE. C++ Builder n'a en effet aucun fichier vector, mais plutôt vector.h qui est utilisé par le compilateur.

Eclipse IDE ne donne pas d'erreur si j'écris

#include <vector.h>

Comment puis-je dire à Eclipse d'utiliser vector.h quand il voit #include <vector>?

15
rmflow

Cela m'a permis d'éviter l'erreur Eclipse "Inclusion non résolue".

Dans mon cas, je devais trouver l'emplacement de l'en-tête de vecteur C++ sur mon ordinateur (qui est un Mac):

find /usr/local -name vector -print

J'ai trouvé l'emplacement d'inclusion correct dans le dossier "/usr/include/c++/4.2.1". Ensuite, je règle les paramètres Eclipse de mon projet comme suit:

Project->Properties->C/C++ General->Paths and Symbols->GNU C++->(Add)->"/usr/include/c++/4.2.1"

Je n'utilise pas C++ Builder, mais ma solution pourrait résoudre en partie votre problème.

26

Vous pouvez également essayer d'utiliser "Paramètres du compilateur intégré CDT GCC". Allez dans les propriétés du projet> Général C/C++> Chemin d’inclusion du préprocesseur> onglet Fournisseurs Puis cochez la case "Paramètres du compilateur intégré CDT GCC" si ce n’est pas le cas.

Aucune des autres solutions (jouer avec le chemin include, etc.) ne fonctionnait pour moi pour le type 'chaîne', mais celle-ci l'a corrigé.

5
Virtual

memory et memory.h ne font pas référence à la même source.

L'un est pour c, l'autre pour c ++

Avez-vous le droit inclut la source dans les paramètres de votre projet?

2
djfoxmccloud

Sous Windows, avec Eclipse CDT Oxygen, aucune des solutions décrites ici ne fonctionnait pour moi (y compris "Fournisseur" - "Paramètres du compilateur intégré CDT GCC"). Ce qui fonctionne pour moi est la suivante:

  • Installez Cygwin, avec notamment les packages suivants (peut-être que tous ne sont pas strictement nécessaires pour cela):
    • libgcc1
    • cygwin32-gcc-core, cygwin32-gcc-g ++
    • gcc-g ++
    • mingw64-x86_64-gcc-core, mingw64-x86_64-gcc-g ++
  • Dans les propriétés du projet:
    • Allez dans "C/C++ Build" - "Éditeur de chaîne d'outils" et sélectionnez "Cygwin GCC" comme "Chaîne d'outils actuelle":  Project Properties - Tool Chain Editor
    • Allez dans "Général C/C++" - "Chemins d'inclusion de préprocesseur, Macors etc.", dans l'onglet "Fournisseurs", sélectionnez:
      • "CDT Users Setting Entries" (j'en ai besoin pour d'autres inclus, tels que ceux de Google Test, que j'ai référencés manuellement);
      • "Paramètres du compilateur intégré CDT GCC Cygwin".  Project Properties -Providers
1
Xavier Lamorlette