Comment puis-je obtenir Eclipse pour indexer un arbre source C/C++ entier qui contient plusieurs "projets make"?
J'ai du mal à obtenir Eclipse pour indexer mon code source. J'utilise Eclipse Helios sur Windows XP en ce moment.
J'ai un répertoire appelé src. En son sein, j'ai un tas de dirs, quelque chose comme ceci:
src -include (common headers) -lib -libIO (source code for this library) -libGUI (source code for this library) -pgms -pgm1 (source code and headers for this pgm) -pgm2 (source code and headers for this pgm)
Chaque feuille a son propre Makefile. Il n'y a pas de Makefile de niveau supérieur dans src. pgm1 peut et inclut des fichiers de include et lib / libIO et lib / libGUI.
Fondamentalement, je veux Qu'Eclipse indexe tout mon répertoire src, sans avoir à configurer un c / c++ projet 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:
Lors de l'édition de la source dans le répertoire PGM1, il fait référence aux fonctions déclarées dans Mes fichiers d'en-tête include dir et définies dans les fichiers source trouvés dans lib/libIO.
Cependant, lorsque j'appuie sur F3 pour obtenir la déclaration d'une fonction, Eclipse dit "impossible de trouver le symbole" X "dans l'index". Je n'arrive pas à obtenir Eclipse pour trouver soit le déclaration d'en-tête ou la définition source de la méthode sous mon curseur(comme le module Java le fait parfaitement). Est-ce possible?
13 réponses
J'ai eu exactement le même problème que OP mais pour une raison quelconque, les menus D'Eclipse que j'utilisais (Helios Service Release 2) n'étaient pas "aller dans Propriétés - > C / C++ général - > chemins et symboles - > emplacement Source.".
La façon dont j'ai résolu le problème était:
- dans la vue c / c++, faites un clic droit sur le nom du projet supérieur;
- 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 fenêtre.
Eclipse va commencer à indexer tout de suite. Selon la taille de l'arbre source, cela peut prendre un certain temps, mais l'indexation fonctionnera finalement après cela.
J'ai fait face à une situation similaire. Je l'ai résolu de cette façon: faites un clic droit sur le projet dans project View-->select Index-->rebuild.
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 D'importation pour télécharger un projet à partir de CVS, et je lui ai dit d'utiliser L'Assistant Nouveau projet pour le faire. Quand j'ai eu la boîte de dialogue Nouveau projet, je lui ai dit que c'était un projet C++, et l'indexation fonctionne maintenant bien.
J'aimerais toujours 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.
Quitter Eclipse. Dans l'espace de travail, allez sur ".métadonnées/.plugins / org.Eclipse.cdt.core " et supprimer tout là-dedans.
Dans le panneau Explorateur de projets, cliquez avec le bouton droit sur le projet à réindexer, puis sélectionnez index, puis sélectionnez l'action souhaitée
L'indexation des fichiers et des variables sous différents drapeaux est toujours compliquée lorsque nous avons un énorme projet, beaucoup de fichiers et plus important encore beaucoup d'options de construction différentes. Je préfère jouer avec L'option Indexer 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"
, Puis c'est à vous de choisir les options que vous voulez pour votre projet. Pour une construction particulière, nous pouvons choisir "Utilisez la configuration de construction active" afin que seuls les fichiers et les MACROS utilisés par le script de construction soient pris en compte. Ou indexez tous les fichiers source dans l'ensemble du projet.
J'ai rencontré des problèmes avec L'indexeur D'Eclipse Luna quand il y avait une déclaration d'ami non résolue dans la déclaration de classe - il semble alors que l'indexeur a ignoré l'indexation du reste de cette classe, et toutes les références à celle-ci ont été montrées comme non résolues par l'indexeur.
Solution: suppression de la déclaration d'ami non résolue (dans mon cas, c'était le code hérité qui n'était plus nécessaire).
J'utilise Eclipse Neon 3, Voici la solution qui a fonctionné pour moi:
- aller au fichier
- Nouveau
- convertir en projet Autotools C / C++ ensuite, sélectionnez votre projet et terminer.
Cela peut prendre un certain temps pour terminer l'indexation, cela dépend de la taille de votre projet.
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 Source.
Voyez-vous votre dossier source là-bas?
J'observe ce comportement: Lorsque j'ajoute un dossier source, puis l'exclut de la construction, il disparaît de la liste ci-dessus. Après que 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 crois que c'est un bug-exclure un dossier source de la construction ne devrait pas le supprimer de la liste des emplacements sources.
Dans COOCOX IDE (Eclipse + gcc), le problème est résolu en allant du menu Fichier Edition > Préférences > C/C++ / Indexeur > configuration de Build pour Indexer mis à l'Actif de configuration de la compilation et de la reconstruction du projet (Ctrl R).
Si le projet est déjà converti en C / C++ et que l'index ne fonctionne toujours pas, vous pouvez faire un clic droit sur le projet et L'Index et reconstruire. Le projet commencera à indexer tout de suite.
J'utilise
Eclipse IDE pour les développeurs Linux C / C++
Version: Helios Service Release 2 ID de construction: 20110218-0911
J'ai suivi les suggestions ci-dessus et en plus j'ai dû marquer tous les projets référencés (avec dans l'espace de travail) en utilisant les propriétés du projet - > références du projet
Ce qui suit a fonctionné pour moi dans Eclipse Neon: Nouveau projet - > C / C++ -> projet Makefile avec le code existant - > suivant. Ensuite, accédez au code et terminez la création du projet. L'indexation démarre automatiquement.