ist jetzt verfügbar! Lesen Sie über die neuen Funktionen und Fehlerbehebungen vom November.

C/C++ IntelliSense konfigurieren

Dieser Artikel befasst sich mit der Konfiguration der C/C++-Erweiterung, um C++-spezifische IntelliSense-Vorschläge in Visual Studio Code bereitzustellen. IntelliSense ist ein hilfreiches Werkzeug, das in VS Code integriert ist und verschiedene Code-Bearbeitungsfunktionen bietet, um Ihnen zu helfen, schneller und effizienter zu codieren. Beispielsweise werden Codevervollständigung, Parameterinformationen, Syntaxhervorhebung, Code Actions (Glühbirnen) und Memberlisten mit IntelliSense generiert.

C/C++ IntelliSense erfordert nur, dass ein C/C++-Compiler auf Ihrem System installiert ist. Der C/C++-Compiler stellt IntelliSense C++-spezifische Informationen zur Verfügung, wie z. B. die Speicherorte von System-Include-Pfaden und andere Einstellungen. Für projektbezogene Konfigurationen siehe den Abschnitt Projektbezogene IntelliSense-Konfiguration.

Wann konfiguriert die C/C++-Erweiterung die wichtigsten IntelliSense-Funktionen für mich?

Ein Compiler ist die einzige Voraussetzung für die Konfiguration der Kern-IntelliSense-Funktionalität. Um einen Compiler für IntelliSense zu identifizieren, durchsucht die C/C++-Erweiterung gängige Pfade auf Ihrem Rechner nach Compilern wie Clang, GCC, MinGW, cygwin, cygwin64 und MSVC. Wenn einer dieser Compiler identifiziert und an einem sicheren Ort gefunden wird, wird er automatisch für IntelliSense konfiguriert. Andernfalls wird eine Benachrichtigung angezeigt, die Sie auffordert zu bestätigen, dass dieser Compiler für IntelliSense konfiguriert werden soll. In beiden Szenarien wird der ausgewählte Compiler auch als Standardcompiler festgelegt.

So überprüfen Sie, ob IntelliSense konfiguriert ist

Wenn Sie IntelliSense nicht konfiguriert haben, zeigt die C/C++-Erweiterung in der Statusleiste eine gelbe Markierung mit einem Warnsymbol und der Beschriftung IntelliSense konfigurieren an.

Configure IntelliSense indicator in the status bar

Um die Konfiguration vorzunehmen, wählen Sie die Statusleistenmarkierung aus, wodurch die Schnellauswahl für die Konfiguration geöffnet wird. Die Schnellauswahl kann Ihnen helfen, einen C/C++-Compiler auszuwählen oder zu installieren.

Wenn Sie keine Statusleistenmarkierung sehen, können Sie auch die Datei c_cpp_properties.json Ihres Projekts überprüfen. Diese Datei speichert alle Ihre IntelliSense-Konfigurationseinstellungen. Navigieren Sie zu dieser Datei, indem Sie C/C++: Konfigurationen bearbeiten (UI) aus der Befehlspalette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) auswählen. Überprüfen Sie den IntelliSense-Modus, um Ihre Konfiguration zu finden.

Command Palette filtered on C/C++ Edit Configurations command

IntelliSense konfigurieren

Die IntelliSense-Konfiguration wird in der Datei c_cpp_properties.json gespeichert, die automatisch in Ihrem Arbeitsbereich erstellt wird. Alle drei folgenden Optionen sind verschiedene Möglichkeiten, die Datei c_cpp_properties.json zu bearbeiten

Option 1. Wählen Sie eine Konfigurationsoption über die Schnellauswahl für die Konfiguration

Öffnen Sie die Schnellauswahl, indem Sie IntelliSense-Konfiguration auswählen in der Befehlspalette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) eingeben. Dies zeigt Ihnen ein Dropdown-Menü mit allen Konfigurationsoptionen, die die C/C++-Erweiterung auf Ihrem Computer gefunden hat.

Select a compiler to configure for IntelliSense Quick Pick

Wählen Sie eine der verfügbaren Optionen aus. Wenn Sie einen Compiler auswählen, wird dieser Compiler standardmäßig von IntelliSense verwendet. Sie können jederzeit zur Schnellauswahl IntelliSense konfigurieren zurückkehren, um zu ändern, welche Option zur Konfiguration von IntelliSense verwendet wird.

Wenn keine Optionen in der Schnellauswahl verfügbar sind, wurde kein Compiler auf Ihrem System identifiziert. Sie können Ihren Computer manuell durchsuchen oder einen C/C++-Compiler installieren. Um auf einem Windows-Computer zu installieren, wählen Sie die Option Hilfe bei der Installation eines Compilers, die Sie zu einer Schritt-für-Schritt-Anleitung zur Installation eines C/C++-Compilers weiterleitet. Auf einem macOS- oder Linux-Computer wählen Sie Compiler installieren und folgen Sie den Anweisungen, um einen C++-Compiler auf Ihrem Rechner zu installieren.

Option 2. Konfigurieren Sie Ihre IntelliSense-Einstellungen über die Benutzeroberfläche

Öffnen Sie Ihre IntelliSense-Konfiguration, indem Sie C/C++: Konfigurationen bearbeiten (UI) aus der Befehlspalette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) auswählen. Diese Ansicht ist eine Benutzeroberfläche für die Datei c_cpp_properties.json.

C/C++ IntelliSense Configurations user interface

Setzen Sie das Feld Compilerpfad auf den vollständigen Pfad des Compilers, den Sie zum Erstellen Ihres Projekts verwenden. Wenn Sie beispielsweise den Standardinstallationspfad für GCC unter Linux verwenden, ist der Compilerpfad /usr/bin/gcc. Setzen Sie den IntelliSense-Modus auf die Architekturspezifische Variante des Compilers, den Sie verwenden.

Option 3. Bearbeiten Sie die Datei c_cpp_properties.json direkt

Sie können die Datei c_cpp_properties.json direkt bearbeiten, um Ihre Konfiguration anzupassen. Verwenden Sie den Befehl C/C++ Konfigurationen bearbeiten (JSON) aus der Befehlspalette (⇧⌘P (Windows, Linux Ctrl+Shift+P)). Anschließend wird die Datei c_cpp_properties.json im Ordner .vscode Ihres Arbeitsbereichs erstellt.

Command Palette filtered on C/C++ Edit Configurations (JSON) command

Verwenden Sie die Variable compilerPath, um einen Compiler hinzuzufügen. Diese Variable ist der vollständige Pfad des Compilers, den Sie zum Erstellen Ihres Projekts verwenden. Wenn Sie beispielsweise den Standardinstallationspfad für GCC unter Linux verwenden, ist der Compilerpfad /usr/bin/gcc.

Weitere Informationen zur Datei c_cpp_properties.json finden Sie im Schema-Referenz.

Wählen Sie das unten stehende Beispiel basierend auf Ihrem Betriebssystem für eine c_cpp_configuration.json-Datei

> Beispiel c_cpp_configuration.json unter Windows

Verwendung des Standardinstallationspfads für MinGW

{
  "configurations": [
    {
      "name": "Win32",
      "includePath": ["${workspaceFolder}/**"],
      "defines": ["_DEBUG", "UNICODE", "_UNICODE"],
      "windowsSdkVersion": "10.0.22621.0",
      "cStandard": "c17",
      "cppStandard": "c++17",
      "intelliSenseMode": "${default}",
      "compilerPath": "C:/msys64/mingw64/bin/gcc.exe"
    }
  ],
  "version": 4
}

> Beispiel c_cpp_configuration.json unter macOS
Verwendung des Standardinstallationspfads für Clang
{
  "configurations": [
    {
      "name": "Mac",
      "includePath": ["${workspaceFolder}/**"],
      "defines": [],
      "macFrameworkPath": [
        "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
      ],
      "compilerPath": "/usr/bin/clang",
      "cStandard": "c17",
      "cppStandard": "c++17",
      "intelliSenseMode": "macos-clang-arm64"
    }
  ],
  "version": 4
}

> Beispiel c_cpp_configuration.json unter Linux
Verwendung des Standardinstallationspfads für GCC
{
  "configurations": [
    {
      "name": "Linux-GCC",
      "includePath": ["${workspaceFolder}/**"],
      "defines": [],
      "compilerPath": "/usr/bin/g++",
      "cStandard": "c17",
      "cppStandard": "c++17",
      "intelliSenseMode": "gcc-x64",
      "browse": {
        "path": ["${workspaceFolder}"],
        "limitSymbolsToIncludedHeaders": true,
        "databaseFilename": ""
      }
    }
  ],
  "version": 4
}

Projektbezogene IntelliSense-Konfiguration

Die Konfiguration von IntelliSense mit einem Compiler bietet Ihnen Kernfunktionen von IntelliSense. Diese Einrichtung wird als Basiskonfiguration bezeichnet. Für komplexere Nutzungsszenarien, wie z. B. die Einrichtung eines Projekts, das erfordert

  • Zusätzliche Include-Pfade, wie z. B. Verweise auf eine oder mehrere verschiedene Bibliotheken
  • Spezifische Compiler-Argumente, die das Verhalten der Sprache (und damit IntelliSense) beeinflussen

Es gibt verschiedene andere Möglichkeiten, IntelliSense zu konfigurieren. Sie können diese zusätzlichen Konfigurationen entweder über

  • Die Datei c_cpp_properties.json und zugehörige Einstellungen
  • Einen benutzerdefinierten Konfigurationsanbieter in Form einer anderen VS Code-Erweiterung (z. B. die Erweiterungen Makefile Tools oder CMake Tools)
  • Eine compile_commands.json-Datei

Konfigurationsanbieter

Ein benutzerdefinierter Konfigurationsanbieter ist eine andere Erweiterung in VS Code, die potenziell eine genauere C++ IntelliSense-Konfiguration als die C/C++-Erweiterung liefern kann. Beispielsweise für die CMake- oder Make-Build-Systeme, bei denen die Erweiterungen Makefile Tools oder CMake Tools Konfigurationsanbieter sein können. Um eine Erweiterung als Konfigurationsanbieter hinzuzufügen, wählen Sie die Erweiterung über die Schnellauswahl für die Konfiguration aus, fügen Sie sie der Benutzeroberfläche für die Konfiguration hinzu, indem Sie das Feld Konfigurationsanbieter unter Erweiterte Einstellungen bearbeiten, oder fügen Sie das Feld configurationProvider zu Ihrer Datei c_cpp_properties.json hinzu. Für die CMake-Erweiterung wäre der hinzuzufügende Pfad beispielsweise ms-vscode.cmake-tools.

C/C++ Advanced Settings Configuration provider

Die C/C++-Erweiterung scannt Ihr System nach benutzerdefinierten Konfigurationsanbietern. Wenn sie nur einen benutzerdefinierten Konfigurationsanbieter identifiziert, wird dieser Konfigurationsanbieter automatisch für IntelliSense konfiguriert. Wenn mehrere Konfigurationsanbieter identifiziert werden, müssen Sie auswählen, welchen die Erweiterung verwenden soll, indem Sie die Schnellauswahl für die Konfiguration (Option 1. Wählen Sie eine Konfigurationsoption über die Schnellauswahl für die Konfiguration) öffnen.

compile_commands.json-Datei

Eine weitere Möglichkeit zur Bereitstellung von IntelliSense-Konfigurationen ist eine compile_commands.json-Datei, die die genauen Kompilierungsbefehle beschreibt, die für jede Datei in einem Projekt verwendet werden. Diese Datei wird oft von einem Build-System wie CMake oder Bazel generiert, indem Kommandozeilenargumente beim Konfigurieren Ihres Projekts gesetzt werden. Eine compile_commands.json-Datei kann für die Konfiguration über dieselben Methoden wie im Abschnitt IntelliSense konfigurieren ausgewählt werden, entweder über die Schnellauswahl für die Konfiguration, die Bearbeitung von Konfigurationen über die Benutzeroberfläche oder die direkte Bearbeitung der Datei c_cpp_properties.json. In der Konfigurations-Benutzeroberfläche kann die Datei unter Erweiterte Konfigurationen und dem Feld Kompilierungsbefehle hinzugefügt werden. Wenn Ihre compile_commands.json-Datei beispielsweise im Stammverzeichnis Ihres Arbeitsbereichs liegt, geben Sie ${workspaceFolder}/compile_commands.json in das Feld Kompilierungsbefehle ein. Andernfalls kann sie direkt zur Datei c_cpp_properties.json mit der Konfigurationseigenschaft compileCommands hinzugefügt werden.

Wenn die Kompilierungsbefehldatenbank keinen Eintrag für die Translation Unit enthält, die der im Editor geöffneten Datei entspricht, wird stattdessen Ihre Basiskonfiguration (in c_cpp_properties.json gefunden) verwendet (wie z. B. Ihr includePath und Ihre defines). Wenn die C/C++-Erweiterung zur Basiskonfiguration zurückkehrt, zeigt die Sprachstatusleistenanzeige (Sprachstatusleistenanzeige) in der Statusleiste die Bezeichnung IntelliSense konfigurieren an.

Wenn Sie einen benutzerdefinierten Konfigurationsanbieter und eine compile_commands.json-Datei angegeben haben, wird zuerst der benutzerdefinierte Konfigurationsanbieter für eine IntelliSense-Konfiguration abgefragt.

Wenn Ihr Programm Header-Dateien enthält, die sich nicht in Ihrem Arbeitsbereich befinden oder nicht im Standardbibliothekenpfad liegen, können Sie den Include-Pfad ändern. Die C/C++-Erweiterung füllt den Include-Pfad auf, indem sie den unter Compilerpfad angegebenen Compiler abfragt. Wenn die Erweiterung den Pfad für die Zielsystembibliotheken nicht finden kann, können Sie den Include-Pfad manuell eingeben.

IntelliSense-Aktivität über die Sprachstatusleiste überprüfen

Sie können feststellen, ob IntelliSense in Ihrer Datei aktiv ist, indem Sie die Sprachstatusleiste verwenden. Um die Sprachstatusleiste aufzurufen, öffnen Sie eine C++-Datei. Die Statusleiste zeigt den Text {} C++ an. Fahren Sie mit der Maus über das {}-Symbol, um das Flyout der Sprachstatusleiste zu öffnen. Der oberste Eintrag im Flyout gibt den IntelliSense-Status an. Hier sind die verschiedenen Status und ihre Bedeutungen

  • IntelliSense: Bereit = IntelliSense ist für die C/C++-Erweiterung konfiguriert und wird automatisch aktiviert, wenn Sie mit dem Editor interagieren, z. B. durch Schreiben von Code.
  • IntelliSense: Aktualisiert = IntelliSense arbeitet aktiv daran, Codevervollständigungen, Syntaxhervorhebungen usw. basierend auf den von Ihnen vorgenommenen Änderungen an Ihrem Code zu ermitteln.

C++ extension language status bar flyout

Sie können das Pin-Symbol rechts neben einem beliebigen Element im Flyout der Sprachstatusleiste auswählen, um es dauerhaft an Ihre Statusleiste zu pinnen.

Nächste Schritte

© . This site is unofficial and not affiliated with Microsoft.