web-dev-qa-db-fra.com

Comment obtenir qu'Eclipse indexe l'intégralité d'une arborescence source C/C++ contenant plusieurs "projets de création"?

J'ai du mal à faire en sorte qu'Eclipse indexe mon code source. J'utilise Eclipse Helios sous Windows XP pour le moment.

J'ai un répertoire appelé src. Dans celui-ci, j'ai un tas de dirs, quelque chose comme ceci:

 src 
 -include (en-têtes communs) 
 -lib 
 -libIO (code source de cette bibliothèque) 
 -libGUI (code source de cette bibliothèque) 
 -pgms 
 -pgm1 (code source et en-têtes pour ce pgm) 
 -pgm2 (code source et en-têtes pour ce pgm) 

Chaque feuille a son propre Makefile. Il n'y a pas de Makefile de niveau supérieur dans src. pgm1 peut inclure des fichiers à partir de include et lib/libIO et lib/libGUI.

Fondamentalement, je veux qu'Eclipse indexe l'intégralité de mon répertoire src, sans avoir à configurer un projet C/C++ pour chaque feuille de mon arbre. Je n'arrive pas à trouver un moyen d'y arriver.

Voici mes symptômes. ce que j'essaie de résoudre pour:

Lors de l'édition de la source dans le répertoire pgm1, il fait référence aux fonctions déclarées dans les fichiers d'en-tête include dir et définies dans les fichiers source présents dans lib/libIO. 

Cependant, lorsque j'appuie sur F3 pour obtenir la déclaration d'une fonction, Eclipse indique "Impossible de trouver le symbole 'X' dans l'index". Je n'arrive pas à obtenir qu'Eclipse trouve la déclaration d'en-tête ou la définition source de la méthode sous mon curseur (comme le fait parfaitement le module Java). Est-ce possible?

24
Jay

J'ai réussi à résoudre ce problème grâce aux commentaires ici .... J'ai fini par recréer mon projet. J'ai utilisé la méthode Import pour télécharger un projet à partir de CVS et lui ai dit d'utiliser l'assistant de création de projet pour le faire. Lorsque j'ai eu la boîte de dialogue Nouveau projet, je lui ai dit qu'il s'agissait d'un projet C++ et que l'indexation fonctionne désormais correctement.

J'aimerais quand même pouvoir indexer des fichiers sans avoir à y attacher un type de projet spécifique, mais au moins j'ai trouvé une réponse. 

Merci pour l'aide tous.

4
Jay

J'avais exactement le même problème que OP, mais pour une raison quelconque, les menus dans Eclipse que j’utilisais (Helios Service Release 2) n’étaient pas "Aller à Propriétés -> Général C/C++ -> Chemins et symboles -> Emplacement de la source.". 

La façon dont j'ai résolu le problème était la suivante:

  • en vue C/C++, cliquez avec le bouton droit sur le nom du projet en haut;
  • dans le menu, sélectionnez Nouveau-> Projet C++;
  • dans la fenêtre qui apparaît, sélectionnez Convertir en, puis sélectionnez Projet C++.
  • cliquez sur OK pour fermer la fenêtre.

Eclipse commencera immédiatement à indexer. En fonction de la taille de l'arborescence des sources, cela peut prendre un certain temps, mais l'indexation fonctionnera finalement par la suite.

27
MHD

J'ai fait face à une situation similaire. Je l'ai résolu de cette façon: faites un clic droit sur le projet dans le projet View-->select Index-->rebuild.

10
Somabho

Quittez Eclipse. Dans l'espace de travail, accédez à ".metadata/.plugins/org.Eclipse.cdt.core" et supprimez tout ce qui s'y trouve. 

4
CppChase

dans le panneau Explorateur de projets, cliquez avec le bouton droit sur le projet que vous souhaitez réindexer, puis sélectionnez Index, puis sélectionnez l'action souhaitée.

3
user3727512

L'indexation de fichiers et de variables sous différents indicateurs est toujours compliquée lorsque nous avons un projet énorme, un grand nombre de fichiers et, plus important encore, de nombreuses options de construction. Je préfère jouer avec l'option d'indexation pour m'aider à parcourir le code entier . Vous pouvez le trouver: Propriétés du projet> C/C++ Général/Indexeur.

Vous pouvez choisir "Activer les paramètres spécifiques au projet"

Ensuite, c’est à vous de choisir les options que vous souhaitez pour votre projet . Pour une construction particulière, nous pouvons choisir "Utiliser la configuration de construction active" afin que seuls les fichiers et MACROS considérés soient utilisés et utilisés par le script de construction .Ou Index tous les fichiers source dans le projet entier.

2
Binay Kumar Pradhan

J'utilise Eclipse Neon 3, voici la solution qui a fonctionné pour moi:

  • aller au fichier
  • Nouveau 
  • Convertissez-vous en projet C/C++ Autotools Puis sélectionnez votre projet et terminez-le.

L’indexation peut prendre un certain temps, cela dépend de la taille de votre projet.

2
basslo

J'ai rencontré des problèmes avec l'indexeur d'Eclipse Luna lorsqu'il y avait une déclaration d'ami non résolue dans la déclaration de classe. Il semble alors que l'indexeur a sauté l'indexation du reste de cette classe et que toutes les références à celle-ci étaient considérées comme non résolues par l'indexeur.

Solution: suppression de la déclaration d'ami non résolue (dans mon cas, le code hérité n'était plus nécessaire).

1
Andreas Lindell

Veuillez essayer ce qui suit (mon projet est configuré différemment, donc je ne suis pas sûr que cela fonctionnera pour vous).

Allez dans Propriétés -> C/C++ Général -> Chemins et symboles -> Emplacement de la source.

Voyez-vous votre dossier source là-bas?

Je constate ce comportement: Après cela, le dossier n'est plus indexé. Le ré-ajouter à "Emplacement source" résout le problème: le dossier est maintenant indexé; reste exclu de la construction (comme prévu); est visible parmi les emplacements source.

Je pense que c'est un bogue - exclure un dossier source de la construction ne devrait pas le supprimer de la liste des emplacements source.

0
user443854

Dans Coocox IDE (Eclipse + gcc), le problème est résolu en accédant au menu Fichier Édition> Préférences> C/C++/Indexer> La configuration de construction pour Indexer définie sur Active et la reconstruction R).

0
jim

J'utilise

Eclipse IDE pour les développeurs Linux C/C++

Version: Helios Service Release 2 Identifiant de construction: 20110218-0911

J'ai suivi les suggestions ci-dessus et, en outre, j'ai dû marquer tous les projets référencés (avec dans l'espace de travail) à l'aide des propriétés du projet-> Références de projet

0
Amir Pauker

Ce qui suit a bien fonctionné pour moi dans Eclipse Neon: Puis naviguez jusqu'au code et terminez la création du projet. L'indexation commence automatiquement.

0
yep

Si le projet est déjà converti en C/C++ et que l’index ne fonctionne toujours pas, vous pouvez cliquer avec le bouton droit de la souris sur le projet et sur Index et reconstruire. Le projet commencera immédiatement à indexer. 

0
hegu2212