“En suspens inclusion” erreur avec Eclipse CDT pour la bibliothèque C standard en-têtes
J'ai configuré la CDT pour eclipse et écrit un simple hello world en C programme:
#include <stdio.h>
int main(void){
puts("Hello, world.");
return 0;
}
Le programme s'appuie et s'exécute correctement, mais eclipse continue de s'afficher à ce point d'interrogation jaune sur le côté de l'énoncé qui dit "Unresolved inclusion: <stdio.h>"
quand je mets la souris dessus.
Il n'a pas d'incidence sur l'exécution du programme, mais je trouve ça plutôt ennuyeux.
Quelqu'un aurait-il une idée de comment le supprimer ?
- On pourrait penser que l'exemple Hello World voudrais faire cela pour vous, ou au moins fournir de l'aide. Si eclipse ne comprend pas un compilateur, pourquoi n'est-ce pas?
- stackoverflow.com/questions/7905025/...
Vous devez vous connecter pour publier un commentaire.
Le compilateur Eclipse est en mesure de résoudre les symboles de l'amende, de sorte que le code compile bien.
Mais l'achèvement de code/préprocesseur Eclipse utilise ne le sait pas où stdio.h existe.
Vous devez spécifier le chemin du système de fichiers où stdio.h est situé.
Voir: http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.cdt.doc.user/tasks/cdt_t_proj_paths.htm
J'ai trouvé ces réponses (y compris les acceptée, un) un peu cryptique.
Pour moi, j'ai dû ajouter le chemin d'accès où stdio.h est situé (comme @ardnew dit). Dans Eclipse, vous ouvrez les Propriétés de votre projet, développez "C/C++ Général" et sélectionnez "Chemins et des Symboles".
Assurez-vous que vous avez ajouté le
include
dir pour chaque langue que vous utilisez. (Dans mon cas, il me faut juste l'ajouter à C++ de GNU.)/usr/bin/xcode-select --install
et alors vous serez en mesure de point d'Éclipse à/usr/include/
juste en ajoutant à la base de connaissances, j'ai juste fait ce sur win7 avec cygwin.
c'est ce qui semble fonctionner pour moi.
chemins à inclure pour c:
inclure des chemins d'accès pour le c++:
cela me fait un nettoyage de la compilation de bonjour tout le monde.
Aller de Projet > Propriétés > C/C++ Général > Préprocesseur Comprend > Fournisseurs de
et de sélectionner à la fois:
Pour chacun de ceux-sélectionnez le sous-entrée: "Utiliser le fournisseur mondial de services partagés entre les projets".
Testé sur Eclipse 4.8.0 dans Ubuntu 16.04 avec un C et C++ bonjour tout le monde.
Il peut résoudre le problème. (Excusez-moi pour le mauvais anglais)
Je suis à l'aide d'Eclipse avec Cygwin, et cela a fonctionné pour moi:
Aller de Projet > Propriétés > C/C++ Général > Préprocesseur Comprend... > Fournisseurs de
et sélectionnez "CDT GCC Compilateur Intégré les Paramètres de Cygwin [Partagé]".
Je travaille avec plusieurs cross compilateur configurations, où j'ai besoin d'utiliser différents emplacements pour les MST fichiers d'en-tête (et d'autres variables d'environnement).
La solution était de mettre en place l'indexeur de sorte qu'il utilise la configuration active.
Malheureusement, en raison de certaines bug dans eclipse, l'option n'est pas stocké en local, donc vous devez utiliser le espace de travail de la configuration si vous voulez enregistrer la configuration lorsque vous ouvrez eclipse de nouveau.
Fenêtre -> Préférences -> C/C++ -> Indexeur -> l'Utilisation active de configuration de la compilation
Cela fera eclipse utiliser le bon compilateur qui est définie avec le projet de l'actif de la Croix-GCC configuration.
Dans ADT je n'ai suivantes:
Normalement, Eclipse doit être en mesure de résoudre automatiquement le standard de fichiers à inclure. Il le fait par l'appel de gcc et de demander à sa configuration. Le plus probable de l'Éclipse n'est pas de trouver votre gcc (ou au moins de ne pas la version que vous utilisez pour la compilation).
Au lieu de spécifier les chemins à inclure dans les paramètres du projet, vous voulez probablement assurez-vous que Eclipse trouve gcc. Ajouter le répertoire où gcc est trouvé à la variable d'environnement PATH avant de commencer Eclipse.
Si vous souhaitez que les différents projets d'utilisation des différents compilateurs, alors vous pourriez souhaitez modifier les options de découverte. Ceux-ci sont cachés par défaut, donc en premier lieu de leur permettre de Fenêtre > Préférences > C/C++ > Propriété des Pages de Paramètres > Affichage de la "Découverte" Options de la page. Ensuite, vous pouvez les trouver dans C/C++ Build > Options de Découverte dans les propriétés du projet.
Je m en utilisant basé sur eclipse CodeWarrior IDE pour les projets intégrés, et je viens de résoudre ce problème par la suppression et l'ajout de nouveau la source des adresses de Projet Properities->C/C++ Général->Chemin d'accès et Sybols-> Inclure des Répertoires. Cela signifie qu'il y a beaucoup de raison de prendre "en Suspens à l'inclusion:" le message et y r beaucoup de solution.
Une erreur que j'ai eu la configuration des Chemins d'accès et de Symboles, c'est que j'ai d'abord configurés les chemins à inclure pour une autre langue. Je travaille avec de la CDT et de Cygwin C++ de gnu. Donc, vous devez configurer les symboles et les chemins d'accès sous licence GNU langage C++.
Que les réponses les plus fréquentes, il est nécessaire de spécifier l'endroit où l'accumulation de dossiers sont situées, qui peuvent être ajoutées via une boîte de dialogue accessible par clic droit sur le projet, et en sélectionnant Propriétés->C/C++ Général->Chemins d'accès et de Symboles.
La question qui reste est ce que les chemins d'accès doivent être ajoutés.
Si vous avez gcc correctement configuré pour l'accès par ligne de commande, et ont besoin de savoir ce que le défaut comprennent des chemins qu'il utilise sont, tout lui demander; selon la langue qui vous intéresse, utilisez:
...cette liste le compilateur par défaut les paramètres qui sont utilisés lors de l'appel de gcc (et cette commande fonctionne également si "gcc" est vraiment un alias pour le bruit, comme sur OSX).
Vers le bas sera la liste des répertoires include:
Si vous entrez dans les répertoires listés ici, dans l'ordre indiqué, dans Eclipse chemins et les symboles de la boîte de dialogue, Eclipse CDT devrait être en mesure de trouver les en-têtes standard, et peut-être certains en-têtes supplémentaires spécifiques à votre système d'exploitation.
(Grâce à devnull réponse à une question connexe.)