Comment puis-je obtenir de l'Éclipse à l'index de code à l'intérieur de #ifdef ... #endif
J'utilise eclipse pour travailler sur du code c et il n'est pas l'indexation de code à l'intérieur de blocs de compilation conditionnelle comme ceci:
#ifdef USE_FEATURE_A
int feature_a(...) {
some = code(here);
}
#endif
Comment puis-je obtenir de l'éclipse à l'index de la feature_a fonction?
- Voulez-vous dire tiret?
- index afin que les fonctionnalités comme le " saut à la définition et à la hiérarchie d'appel fonctionne.
Vous devez vous connecter pour publier un commentaire.
Vous pourriez dire éclipse qui
USE_FEATURE_A
est défini. Ouvrez votre projet, propriétés et allez à "C/C++ Général->les Chemins et les Symboles de la page, sous les "Symboles" de l'onglet, cliquez sur le bouton "Ajouter" et de mettreUSE_FEATURE_A
dans le nom feild et cliquez sur OK.Remarque: cela la fera pas à l'index toute
#else
côtés de votre préprocesseur choses... à moins qu'ils sont tous comme celui en question, vous ne pouvez pas autant que je sache, mais si elles le sont-ils que vous êtes bon. (Eclipse contient un préprocesseur C qu'il utilise pour analyize votre code de toutes les choses ci-dessus n'est essentiellement le même que l'ajout de -DUSE_FEATURE_A à votre ligne de commande afin de l'Éclipse du préprocesseur va se comporter différemment de celui de votre compilateur)Il est plus facile et à mon avis, solution plus élégante à celle qui est sélectionnée comme étant la solution:
Si quelqu'un a le même problème (que j'ai eu), ce qui peut (maintenant?) être facilement résolu en allant à Fenêtre->Préférences->C/C++/Indexeur et permettre l'Indice de "tous les en-tête des variantes".
Puis cliquez sur Projet->C/C++ Indexeur->reconstruire et propre et construire votre projet. Cela devrait résoudre toutes les erreurs provenant de préprocesseur commandes.
Pour ce que ça vaut, l'obtention d'eclipse pour analyser conditionnellement le code compilé est beaucoup plus difficile à faire que cela puisse paraître à première vue. J'ai trouvé un papier par IBM à partir de 2007, où ils ont dit qu'ils donneront la priorité pour le "prochaine version".
La manipulation de Compilation Conditionnelle dans le CDT de Base
J'ai eu ce même problème, mais le code conditionnellement éliminé par le prétraitement a été parfaitement valide le code en c et j'ai voulu formaté... C'était ma solution:
1) de recherche/remplacement Global de la #si #JUNKif
2) Ctrl-Shift-F pour reformater la source
3) une Autre recherche/remplacement global de #JUNKif à #si
Un moyen de l'indice de code sous drapeau dans Eclipse(Kepler) c/c++Éditeur.
Vous pouvez activer les options de compilation dans Eclipse éditeur de sorte que le code sous eux peuvent être indexées.
Propriétés > Préprocesseur Inclure des Chemins d'accès > CDT paramètres de l'Utilisateur Entrées
Cliquez sur AJOUTER et ajouter la Macro du Préprocesseur et vous pouvez spécifier sa valeur.
Meilleur moyen je pense est d'utiliser l'Indexeur option : Propriétés de Projet>C/C++ Général>de l'Indexeur.
Vous pouvez choisir d'Activer les paramètres spécifiques d'un projet
Je préfère le choix de "l'Utilisation active de configuration de la compilation" de sorte que tous les fichiers qui sont en fait construites dans le projet sont indexés.
De toute façon, vous pouvez également choisir d'indexer tous les fichiers dans le projet, même s'ils ne sont pas inclus dans la construire ...