64 votes

Eclipse CDT : Le symbole 'cout' n'a pas pu être résolu.

L'erreur est la même que ci-dessus. J'ai ce qui devrait être tous les fichiers nécessaires inclus dans le projet eclipse :

/usr/include/c++/4.6
/usr/include
/usr/include/linux
/usr/local/include

etc.

J'ai essayé std::cout y using namespace std; cout mais ça dit toujours non résolu.

J'ai importé iostream y cstdlib .

De plus, je suis sur Ubuntu 12.04 avec eclipse 3.7.2.

Extraits de code :

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include "XPLMDisplay.h"
#include "XPLMGraphics.h"

int XPluginStart(char * outName,  char * outSig,  char * outDesc) {
    /* ... */
    std::cout << "test" << std::endl;
    /* ... */
}

en utilisant l'espace de noms std ;


UPDATE : J'avais créé le projet eclipse à partir d'un code existant. La création d'un nouveau projet c++ corrige le problème. J'accepterai une réponse qui explique quel paramètre dans le projet existant pourrait causer ceci (ainsi je n'ai pas à couper et coller tous mes projets).

0 votes

Avez-vous importé iostream ?

0 votes

Riight, quand on parle d'" importer " iostream, j'espère que vous faites en fait " #include <iostream> " puisque la notion d'importation de choses n'est pas tout à fait correcte en C++.

0 votes

@hmjd Je ne peux pas poster tout le code, mais un peu plus ne devrait pas faire de différence.

4voto

codefool Points 171

J'ai eu un problème similaire avec *std::shared_ptr* avec Eclipse en utilisant MinGW et gcc 4.8.1. Quoi qu'il en soit, Eclipse ne pouvait pas résoudre *shared_ptr*. Pour résoudre ce problème, j'ai ajouté manuellement la macro __cplusplus aux symboles C++ et - viola ! - Eclipse peut la trouver. Puisque j'ai spécifié -std=c++11 comme option de compilation, j'ai (ahem) supposé que l'analyseur de code Eclipse utiliserait également cette option. Donc, pour corriger cela :

  1. Contexte du projet -> Général C/C++ -> Chemins et symboles -> Onglet Symboles
  2. Sélectionnez C++ dans le panneau Langues.
  3. Ajouter un symbole __cplusplusplus avec une valeur de 201103 .

Le seul problème avec ceci est que gcc se plaindra que le symbole est déjà défini ( !) mais la compilation se fera comme avant.

1voto

WaTho Points 1

Pour moi, il a été utile d'activer la découverte automatique dans Propriétés -> C/C++-Build -> Options de découverte pour résoudre ce problème.

1voto

liu Points 24

Je supprime simplement toutes les erreurs dans la liste buttom : problem. puis je ferme le projet et rouvrir le projet nettoyer le projet construire tout exécuter

puis ces erreurs stupides s'en vont.

1voto

ormurin Points 108

Si tout le reste échoue, comme dans mon cas, il suffit de désactiver les annotations. J'ai commencé un projet c++11 avec mon propre makefile mais je n'ai pas pu résoudre tous les problèmes. Même si vous désactivez les annotations, Eclipse sera toujours capable de vous aider à faire de l'autocomplétion. Le plus important est que le débogueur fonctionne toujours !

1voto

user1205577 Points 613

J'ai eu le même problème en utilisant Eclipse CDT (Kepler) en Windows con Cygwin installé. Après avoir fait pointer les propriétés du projet sur tous les include Cygwin auxquels je pouvais penser, il ne trouvait toujours pas cout .

La dernière pièce manquante s'est avérée être C:cygwin64\lib\gcc\x86_64-pc-cygwin\4.8.2\install-tool\include .

Pour résumer :

  • Cliquez à droite sur le projet
  • Choisissez Properties
  • Naviguez vers C/C++ General > Paths and Symbols > Includes onglet
  • Cliquez sur Add...
  • Cliquez sur File system...
  • Naviguez jusqu'à l'emplacement de votre Cygwin lib\gcc\x86_64-pc-cygwin\4.8.2\install-tool\include
  • Cliquez sur OK

Voici à quoi ressemblait mon projet une fois tout terminé : enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X