web-dev-qa-db-fra.com

Impossible d'ouvrir le fichier d'inclusion avec Visual Studio

Je suis récemment passé de Code :: Blocks à Visual Studio, et dans Code :: Blocks, on pourrait simplement ajouter une classe et l'inclure tout de suite. Cependant, chaque fois que je fais la même chose dans Visual Studio avec l'instruction suivante:

#include "includedFile.h"

ou

#include "include/includedFile.h"

Cela ne fonctionne pas et j'obtiens l'erreur:

impossible d'ouvrir le fichier d'inclusion: 'includedFile.h'; Aucun fichier ou répertoire de ce nom.

Y a-t-il une case ou un paramètre que je dois cocher? Ou dois-je ajouter chaque en-tête en tant que dépendance manuellement?

Voici le code de la classe en question:

Public.h:

    #pragma once
    class Public
    {
        public:
            static const int SCREEN_WIDTH=1000;
            static const int SCREEN_HEIGHT=1250;
            Public(void);
            ~Public(void);
    };

Public.cpp:

    #include "Public.h"


    Public::Public(void)
    {
    }


    Public::~Public(void)
    {
    }

Comment cela est inclus:

    #include "Public.h"
19
user2853108

J'ai eu ce même problème allant de gcc à Visual Studio pour la programmation en C. Assurez-vous que votre fichier d'inclusion est bien dans le répertoire - ne s'affiche pas uniquement dans l'arborescence du projet VS. Pour moi, dans d'autres langues, copier dans un dossier de l'arborescence du projet déplacerait effectivement le fichier. Avec Visual Studio 2010, coller dans "Fichiers d'en-tête" ne mettait PAS le fichier .h là.

Veuillez vérifier votre répertoire actuel pour la présence du fichier include. Le placer dans le dossier "en-têtes" de l'explorateur de projets/solutions n'était pas suffisant.

31
Yablargo

Accédez aux propriétés de votre projet (Projet -> Propriétés -> Propriétés de configuration -> C/C++ -> Général) et dans le champ Répertoires d'inclusion supplémentaires, ajoutez le chemin d'accès à votre fichier .h.

Et assurez-vous que votre configuration et votre plate-forme sont les actives. Exemple: Configuration: Actif (Debug) Plate-forme: Actif (Win32).

21
Radu Ruse

Vous devez définir le chemin d'accès du préprocesseur pour rechercher ces fichiers d'inclusion, s'ils ne se trouvent pas dans le dossier du projet.

Vous pouvez définir le chemin dans répertoires VC++ , ou dans répertoires d'inclusion supplémentaires . Les deux se trouvent dans les paramètres du projet.

17
Chris Olsen

Par défaut, Visual Studio recherche les en-têtes dans le dossier où se trouve votre projet ($ ProjectDir) et dans les répertoires des bibliothèques standard par défaut. Si vous devez inclure quelque chose qui n'est pas placé dans votre répertoire de projet, vous devez ajouter le chemin d'accès au dossier afin d'inclure:

Accédez aux propriétés de votre projet (Projet -> Propriétés -> Propriétés de configuration -> C/C++ -> Général) et dans le champ Additional Include Directories ajoutez le chemin à votre fichier .h.

Vous pouvez également, comme l'a suggéré Chris Olen, ajouter le chemin d'accès au champ Répertoires VC++.

15
tomi.lee.jones

J'ai trouvé ce post parce que j'avais la même erreur dans Microsoft Visual C++. (Bien qu'il semble que sa cause soit un peu différente de la question ci-dessus.)

J'avais placé le fichier que j'essayais d'inclure dans le même répertoire, mais il était toujours introuvable.

Mon include ressemblait à ceci: #include <ftdi.h>

Mais quand je l'ai changé en ceci: #include "ftdi.h" alors il l'a trouvé.

6
Joe

Si vous avez essayé les autres réponses et que votre fichier d'inclusion est toujours introuvable, voici quelques étapes de débogage et de contrôle de cohérence supplémentaires:

  • Assurez-vous de créer une plate-forme prise en charge par votre code. (Si non, envisagez de supprimer cette plateforme en tant que cible)
  • Vérifiez que le nom de fichier/chemin est correct. Modifiez votre code source en #include au lieu du chemin absolu du fichier d’en-tête, et voyez si le fichier peut être trouvé maintenant. Sinon, copiez-collez le chemin de votre code source dans une ligne de commande pour valider que le fichier existe dans ce chemin complet sans aucune faute de frappe. Ouvrez le fichier d'en-tête pour vous assurer d'avoir un accès en lecture. (Modifiez le code source lorsque vous avez terminé.)
  • Si vous avez déjà ajouté le chemin d'accès à Additional Include Directories, essayez de cliquer sur la liste déroulante déroulante pour Additional Include Directories et sélectionnez <Edit...>. Cela vous montrera evaluated values de chemins. (Si les valeurs évaluées correctes ne sont pas affichées, les variables de votre chemin risquent de ne pas être définies. Cliquez sur Macros>> pour voir les variables.) Copiez-collez le chemin évalué dans l'explorateur Windows pour valider son existence.
  • Créez un nouveau projet "Application console Windows" C++ vide. Définissez uniquement le répertoire d’inclusion et #include le seul fichier de votre fichier main.cpp, et voyez si cela se construit.
0
cowlinator

Voici une solution étrange (qui pour être honnête, je ne comprends pas tout à fait) qui s’est avérée être ma réponse à cette question.

Dans la fenêtre Propriétés -> C++ -> Général, au lieu de lier le chemin d'accès au fichier dans des "répertoires d'inclusion supplémentaires". Mettez "." et décochez "hériter des valeurs par défaut du parent ou du projet".

J'espère que cela t'aides.

0
mkohler

Si votre problème persiste, c'est certainement parce que vous essayez de compiler une version différente de vos paramètres actuels.

Par exemple, si vous définissez votre Additional Include Directories Dans Debug x64, assurez-vous que vous compilez avec la même configuration.

Vérifiez ceci: Build > Configuration Manager... > Il y a sûrement quelque chose comme ça dans la configuration de votre solution active: Debug x86 (Win32) platform.

0
Patapoom