it-swarm.com.de

Wo sucht Visual Studio nach C ++ - Headerdateien?

Ich habe eine Kopie einer C++ - Anwendung von SourceForge (HoboCopy, wenn Sie neugierig sind) ausgecheckt und versucht, sie zu kompilieren.

Visual Studio teilt mir mit, dass eine bestimmte Headerdatei nicht gefunden werden kann. Ich habe die Datei im Quellbaum gefunden, aber wo muss ich sie ablegen, damit sie beim Kompilieren gefunden wird?

Gibt es spezielle Verzeichnisse?

83
Brian Sullivan

Visual Studio sucht nach Headern in dieser Reihenfolge:

  • Im aktuellen Quellverzeichnis.
  • In den zusätzlichen Include-Verzeichnissen in den Projekteigenschaften (Projekt -> [Projektname] Eigenschaften unter C/C++ | Allgemein).
  • In Visual Studio C++ Include Directories unter ToolsOptionsProjects and SolutionsVC++ Directories.
  • In neuen Versionen von Visual Studio (2015+) ist die obige Option veraltet und eine Liste der Standard-Include-Verzeichnisse ist unter ProjekteigenschaftenKonfigurationVC++ - Verzeichnisse) verfügbar

Fügen Sie in Ihrem Fall das Verzeichnis, in dem sich der Header befindet, zu den Projekteigenschaften hinzu (ProjekteigenschaftenKonfigurationC/C++AllgemeinZusätzliche Include-Verzeichnisse).

102
Rob Prouse

Auf meinem Windows 10 mit Visual Studio 2017-Community lauten die C++ - Header-Pfade:

  1. C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\include

  2. C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\ucrt

Die erste enthält Standard-C++ - Header wie <iostream>, <algorithm>. Die zweite enthält alte C-Header wie <stdio.h>, <string.h>. Die Versionsnummer kann je nach Ihrer Software unterschiedlich sein.

Hoffe das würde helfen.

12
linrongbin

Wenn das Projekt mit einer Visual Studio-Projektdatei geliefert wurde, sollte diese bereits so konfiguriert sein, dass die Header für Sie gefunden werden. Wenn nicht, müssen Sie das Include-Dateiverzeichnis zu den Projekteinstellungen hinzufügen, indem Sie mit der rechten Maustaste auf das Projekt klicken und Eigenschaften auswählen, auf "C/C++" klicken und das Verzeichnis mit den Include-Dateien zu "Zusätzliche Include-Verzeichnisse" hinzufügen. Bearbeitungsfeld.

11
Adam Rosenfield

Es wurde versucht, dies als Kommentar zu Rob Prouse hinzuzufügen, aber die fehlende Formatierung machte es unverständlich.

In Visual Studio 2010 meldet das Dialogfeld "Extras | Optionen | Projekte und Lösungen | VC++ - Verzeichnisse", dass die Bearbeitung von VC++ - Verzeichnissen unter Extras> Optionen veraltet ist, und schlägt vor, dass Sie den nicht ganz intuitiven Eigenschaften-Manager verwenden.

Wenn Sie den Standardwert $ (IncludePath) wirklich wirklich aktualisieren möchten, müssen Sie den entsprechenden Eintrag in eine der XML-Dateien hacken:

\ Programme (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets\v100\Microsoft.Cpp.Win32.v100.props

oder

\ Programme (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\x64\PlatformToolsets\v100\Microsoft.Cpp.X64.v100.props

(Wahrscheinlich nicht von Microsoft empfohlen.)

6
SteveWilkinson

Es scheint einen Fehler in der Visual Studio 2015-Community zu geben. Bei einem 64-Bit-Projekt wird der Include-Ordner nur in der Win32-Bit-Konfiguration gefunden Zusätzliche Include-Ordner Liste.

5
Markus

Es gibt eine neuere Frage: Was trifft das Problem besser? Wie funktionieren Include-Pfade in Visual Studio?

In den neueren Versionen von VisualStudio wird die Vorgehensweise beschrieben

  • nur im aktuellen Projekt (da auch hier die Frage gestellt wird) sowie
  • für jedes neue Projekt als Standard

Das zweite ist das, was die Antwort von Steve Wilkinson oben erklärt, was, wie er selbst vermutet, nicht das ist, was Microsoft empfehlen würde.

Um es hier kurz zu sagen: mach es, aber mach es im User-Directory unter

C:\Benutzer\Benutzername\AppData\Local\Microsoft\MSBuild\v4.0

in der XML-Datei

Microsoft.Cpp.Win32.user.props

und/oder

Microsoft.Cpp.x64.user.props

und nicht im Verzeichnis C:\program files -, in dem sich die unveränderte Factory-Datei von Microsoft befinden soll.

Dann machen Sie es so wie VisualStudio es auch macht und alles ist normal.

Weitere Informationen dazu finden Sie in meiner Antwort dort .

3
Pablo el Puro