2014-09-12 4 views
0

J'ai importé le projet IAR C++ existant pour ARM dans Eclipse IDE, avec le plugin ajouté pour la chaîne d'outils IAR. Le projet a été importé, mais certains fichiers ne sont pas inclus. Il donne une erreur: inclusion non résolue "et le texte est souligné avec la couleur rouge.J'ai ajouté le chemin pour ces fichiers comme indiqué ci-dessous, mais toujours la même erreur est là.S'il vous plaît suggérer pour supprimer cette erreurComment supprimer l'erreur "inclusion non résolue" pour le chemin défini par l'utilisateur dans Eclipse IDE

inclure" ./../ ../../try_one/try_headers/limits.h "

+0

Est-ce une erreur de l'outil d'analyse de code Eclipse ou une erreur de compilateur? –

+0

sur l'outil d'analyse de code ... à cause de cela une partie du code devient inaccessible –

Répondre

0

Vous devez configurer l'indexeur Eclipse correctement Si le type de votre projet est" Projet Makefile "(donc pas de type" géré ", où vous entrez les options de compilation/flags dans Eclipse)

Allez dans les propriétés de votre projet, puis "C/C++ Général"> "Préprocesseur Inclure chemins, macros etc." et passez à l'onglet "Fournisseurs". autre que:

  • CDT GCC sortie de la construction Parser,
  • CDT Cross GCC Intégrable Paramètres du compilateur (en fonction de votre projet type exact, cela devrait être un autre type - pour le projet "Cross GCC", sélectionnez » .. Cross GCC ... "case à cocher).

les configurer comme dans les images ci-dessous:

enter image description here enter image description here

Dans le premier cas, vous remplacez:

(gcc)|([gc]\+\+)|(clang)

avec:

De cette façon, Eclipse saura que toutes vos lignes commençant par «... arm-none-eabi-gcc ...» ou «... arm-none-eabi-g ++ ...» sont des invocations du compilateur. , donc il sera capable d'analyser les drapeaux, y compris les chemins d'inclusion (-I flags). Vous pouvez modifier les options Fichier/Dossier/Projet - en fonction de votre configuration.

Dans le second cas, vous remplacez ce qui est dans la zone de texte avec quelque chose de similaire à:

arm-none-eabi-${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}" -std=gnu++11 -std=gnu99 -mcpu=cortex-m4 -mthumb

Et vous devez spécifier des drapeaux appropriés, en fonction de votre projet. Vous entrez seulement les drapeaux qui importent pour les "paramètres de compilation intégrés" - ce sont -std, -mcpu, -mthumb, -mfpu, etc. Comme vous le voyez, vous devriez entrer des drapeaux pour C et C++ (si vous utilisez C++).

Bien sûr, si le préfixe de votre compilateur n'est pas "arm-none-eabi-", vous devez modifier les options en conséquence. Après cela, vous devriez faire une reconstruction complète de votre projet, afin qu'Eclipse puisse voir TOUTES les commandes de compilation pour TOUS les fichiers de votre projet. Si votre makefile cache les commandes actuelles (par exemple il affiche seulement "CC: some_file.c" au lieu de la commande complète qui est réellement exécutée) cette fonctionnalité doit être désactivée (vous pouvez modifier la façon dont make est invoqué dans les propriétés du projet sous "C/C++ Construire "dans" Comportement "onglet dans" Build (incremental build) "zone de texte).

Parfois, il est également nécessaire de reconstruire l'index manuellement, faites un clic droit sur votre projet et allez dans "Index"> "Reconstruire" (parfois d'autres options aident aussi). Fermez tous les éditeurs, peut-être même fermez le projet, et après la réouverture il devrait être OK. Après toutes ces étapes, vous devriez voir une petite "clé" icônes sur vos sources (ou dossiers ou projet entier - selon ce que vous avez sélectionné dans l'analyseur) - après avoir cliqué sur cet élément avec le bouton droit, sélectionnez Propriétés et " C/C++ Général ">" Le préprocesseur inclut des chemins, des macros etc. vous devriez être en mesure de voir ce que Eclipse il a découvert:

enter image description here

Questions connexes