8 votes

Fichier d'en-tête non trouvé dans Eclipse CDT

J'essaie de construire un projet qui utilise une bibliothèque externe (Casablanca) en utilisant Eclipse CDT 8.8.1. sur Mac OS. Comme prévu, la première exécution de la construction a renvoyé des erreurs "cpprest/http_client.h file not found".

J'ai ensuite procédé à l'ajout d'un chemin d'inclusion (/Users/me/projects/casablanca/Release/include) en cliquant avec le bouton droit de la souris sur le projet, en sélectionnant Propriétés->C/C++ Include Paths and Symbols, Add External Include Path, et en le déplaçant en priorité comme premier dossier listé.

Cependant, cela n'a pas résolu le problème et Eclipse ne semble toujours pas trouver les en-têtes. La directive #include est la suivante :

#include <cpprest/http_client.h>

et le répertoire /include ajouté a un sous-répertoire /cpprest, avec http_client.h dedans.

Toute aide serait appréciée.

7voto

HighCommander4 Points 9962

Ajout d'un chemin d'inclusion à Project Properties | C/C++ General | Paths and Symbols ajoute seulement le chemin de l'inclusion à l'ensemble des inclusions recherchées par l'indexeur de CDT lors de l'indexation du projet.

Le système de construction actuel doit être informé du chemin d'inclusion par un autre moyen. Si vous utilisez un projet Managed Build (par opposition à un projet Makefile) - ce qui semble être le cas - vous ajouterez le chemin d'inclusion dans le fichier Project Properties | C/C++ Build | Settings . Notez que l'indexeur récupère automatiquement les paramètres de construction, donc une fois que vous l'avez fait, il ne devrait pas être nécessaire de l'ajouter également au fichier Paths and Symbols .

2voto

Alex Smith Points 693

Cette réponse s'applique si :

  1. Vous n'avez pas de projet C++ Managed Build (par exemple, vous avez un projet C++ Makefile comme moi).

et

  1. Diverses choses dans l'éditeur de code sont soulignées en rouge parce qu'un fichier d'en-tête n'est pas détecté.

Dans mon cas, l'indexeur a trouvé les en-têtes (et tous les soulignements rouges ont disparu) lorsque j'ai ajouté les répertoires include à la section Project Properties > C/C++ General > Preprocessor Includes > Select GNU C++ > Select CDT User Settings Entries > Press Add . Assurez-vous que les boîtes combo (ou menus déroulants) sont réglées sur "Répertoire inclus" et "Chemin du système de fichiers". Saisissez ou recherchez le répertoire d'inclusion. Appuyez ensuite sur OK > OK.

Notez qu'avant cela, j'ai essayé d'ajouter le répertoire include à Propriétés du projet > C/C++ Général > Chemins et symboles > GNU C++ > Ajouter mais cela n'a pas suffi à résoudre le problème.

Sur la base de quelques tests rapides, il semble que le Chemins d'accès et symboles > GNU C++ > etc. sont inutiles si vous utilisez un système de construction externe.

J'utilise Eclipse 3.8.1 sur Ubuntu 16.04 avec Eclipse CDT 8.6.0.

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