66 votes

Nettoyer l'index Eclipse, il n'est pas synchronisé avec le code

J'utilise Eclipse avec du code C++ via des ressources liées sous Linux. L'index d'analyse du code semble être corrompu (Goto definition fait atterrir le curseur près de, mais pas sur, la définition). Rafraîchir les ressources ne résout pas le problème, ni redémarrer Eclipse.

Existe-t-il un moyen de vider l'index et de le reconstruire ?

81voto

Josh Kelley Points 24438

Cliquez avec le bouton droit de la souris sur votre projet, allez dans le sous-menu Index, et choisissez soit "Reconstruire", "Mettre à jour avec les fichiers modifiés" ou "Rafraîchir tous les fichiers".

Je ne connais pas la différence entre ces trois options, mais l'une d'entre elles, "Mettre à jour avec les fichiers modifiés" ou "Rafraîchir tous les fichiers", règle généralement le problème pour moi.

Par ailleurs, je suis sûr que vous l'avez déjà fait, mais assurez-vous que vous exécutez la dernière version du CDT d'Eclipse. Les versions actuelles semblent avoir une indexation beaucoup plus fiable que les versions précédentes.

2 votes

Dans le passé, j'ai parfois dû fermer et rouvrir le projet pour que cela fonctionne, pour une raison quelconque.

2 votes

"Rafraîchir tous les fichiers" a bien fonctionné. "Reconstruire" n'a pas aidé.

0 votes

Il faudrait accorder plus d'importance à la notion de "rafraîchissement". J'ai reconstruit plusieurs fois après avoir changé c++11 en c++14 à plusieurs endroits afin que __cplusplus__ serait 201300, ce qui me permet d'avoir make_unique. Freshen était l'étape dont j'avais besoin, après toutes ces reconstructions.

41voto

Rüdiger Stevens Points 5381

Une autre méthode de force brute consiste à fermer Eclipse, à ouvrir le répertoire de votre espace de travail et à aller dans ".metadata". \.plugins\org.eclipse.cdt.core "et supprimez tout ce qui s'y trouve.

Cela aide enfin si "Freshen all Files" et ses amis n'ont pas fonctionné.

36voto

Stephen Points 181

De http://dev.eclipse.org/mhonarc/lists/cdt-dev/msg10390.html les différences entre "Reconstruire", "Mettre à jour avec les fichiers modifiés" ou "Rafraîchir tous les fichiers" :

Reconstruire : Fonctionne uniquement pour les projets entiers. Efface l'index et indexe les fichiers à partir de zéro. Lorsqu'il est annulé, il vous laisse avec un index vide ou vide ou partiel.

Mise à jour avec les fichiers modifiés : Fonctionne sur une sélection sélection. Vérifie sur les fichiers individuels si l'horodatage ou la configuration de l'analyseur a été modifié et met à jour l'index pour les fichiers modifiés. l'analyseur-config a été modifié et met à jour l'index pour les fichiers modifiés. fichiers modifiés.

Rafraîchir tous les dossiers : Fonctionne sur une sélection de ressources. Met à jour la fichiers sélectionnés dans l'index. L'index n'est pas effacé, il est possible de annuler l'opération.

4 votes

Bien que ce ne soit pas une réponse à la question, c'était quand même utile.

1 votes

Cette description correspond à ce à quoi je m'attends, mais ne correspond pas à ce que je vois réellement dans le comportement d'Eclipse. Pour moi, "Freshen All Files" a réglé le problème, mais pas "Rebuild". Cela n'a aucun sens si "Rebuild" supprime réellement l'index et le reconstruit à partir de zéro.

21voto

TheAnvil Points 71

Allez à votre projet properties -> C++ general -> Indexer .

  • Faites-le avec 'project specific settings' ,
    (ou sur 'Configure Workspace Settings...' ).
  • Désélectionner 'Enable Indexer' touchez Apply .
  • Sélectionnez 'Enable Indexer' touchez Apply .

Cela devrait complètement effacer et reconstruire l'index.

0 votes

Merci. Cela m'a aidé. En outre, j'ai dû sélectionner l'option "Index Source Files Not Included In The Build". Cela est dû au fait que mon environnement de construction/chaîne d'outils n'est pas intégré à Eclipse (c'est-à-dire qu'Eclipse n'est utilisé que pour naviguer et modifier le code, mais pas pour construire le projet).

17voto

Pavel Zdenek Points 3622

Aucune des solutions ci-dessus n'a fonctionné pour moi (Eclipse Indigo), l'index est toujours cassé et refuse de se reconstruire correctement. Jusqu'à ce que j'applique celle-ci :

http://slsam2.blogspot.com/2012/02/eclipse-cdt-index-not-working.html

La partie cruciale de l'article lié est la suivante :

Eclipse ne traite plus votre projet comme un projet C++. Choisissez le menu File/New/Convert to a C/C++ project . L'indexation du code source prend un certain temps.

Je me demande toujours comment Eclipse peut se tirer une balle dans le pied de façon incontrôlée comme ça. Je soupçonne que l'installation de paquets supplémentaires peut le déclencher. Peut-être le support JavaScript dans mon cas.

1 votes

J'apprécie beaucoup le fait de ne pas seulement poster un lien, mais de sauvegarder les informations pertinentes pour le cas où les liens seraient à nouveau rompus. Cela devrait être une exigence pour les réponses de StackOverflow.

0 votes

1 votes

Seule celle-ci a fonctionné pour moi pour Eclipse Version : 2019-03 (4.11.0). Merci

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