web-dev-qa-db-de.com

Visual Studio Code includePath

Ich versuche, C/C++ in Visual Studio Code zu erstellen. Ich habe C/C++ und alle relevanten Erweiterungen installiert.

#include <stdio.h>
int main() {
    printf("Test C now\n");
    return 0;
}

Unter #include <stdio.h> steht jedoch eine grüne Linie mit der Aufschrift "Include-Pfad zu Einstellungen hinzufügen". Wenn ich darauf klicke, wechselt es zu "c_cpp_properties.json".

Wie und wo kann ich in den folgenden Konfigurationen Include-Pfade hinzufügen?

"configurations": [
    {
        "name": "Mac",
        "includePath": ["/usr/include"]
    }
]
35
stdio.h

Wie und wo kann ich in den folgenden Konfigurationen Include-Pfade hinzufügen?

Die Liste ist ein String-Array. Das Hinzufügen eines Include-Pfads würde ungefähr so ​​aussehen:

"configurations": [
    {
        "name": "Mac",
        "includePath": ["/usr/local/include",
            "/path/to/additional/includes",
            "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include"
        ]
    }
]

Quelle; cpptools blog 31. März 2016 .

Die verknüpfte Quelle hat ein GIF-Format, das das Format für die Win32-Konfiguration angibt. Gleiches gilt für die anderen.

Das obige Beispiel enthält den Pfad des SDK (OSX 10.11), wenn Xcode installiert ist.

Note Die Aktualisierung kann nach einer Änderung des Include-Pfads eine Weile dauern.

Die cpptools-Erweiterung kann hier gefunden sein.

Weitere Dokumentation (von Microsoft) zur Unterstützung der C++ - Sprache in VSCode kann hier zu finden sein.


Der Beibehaltung halber (aus der Diskussion) sind im Folgenden grundlegende Ausschnitte für den Inhalt der Datei task.json zum Kompilieren und Ausführen entweder einer C++ - Datei oder einer C-Datei. Sie lassen Leerzeichen im Dateinamen zu (erfordert, dass die zusätzlichen Anführungszeichen im json mit \" maskiert werden). Die Shell wird als Läufer verwendet, wodurch die Kompilierung (clang...) und die Ausführung (&& ./a.out) des Programms ermöglicht wird. Es wird außerdem davon ausgegangen, dass "task.json" im lokalen Arbeitsbereich (im Verzeichnis .vscode) "lebt". Weitere Details zu task.json, wie unterstützte Variablen usw., sind hier zu finden .

Für C++;

{ 
    "version": "0.1.0", 
    "isShellCommand": true, 
    "taskName": "GenericBuild", 
    "showOutput": "always", 
    "command": "sh", 
    "suppressTaskName": false, 
    "args": ["-c", "clang++ -std=c++14 -Wall -Wextra -pedantic -pthread \"${file}\" && ./a.out"]
}

Für C;

{ 
    "version": "0.1.0", 
    "isShellCommand": true, 
    "taskName": "GenericBuild", 
    "showOutput": "always", 
    "command": "sh", 
    "suppressTaskName": false, 
    "args": ["-c", "clang -std=c11 -Wall -Wextra -pedantic -pthread \"${file}\" && ./a.out"] // command arguments... 
}
36
Niall

Für Mac-Benutzer, die statt Xcode nur Befehlszeilentools installiert haben, überprüfen Sie das Verzeichnis /Library/Developer/CommandLineTools/, z. B. ::

"configurations": [{
    "name": "Mac",
    "includePath": [
        "/Library/Developer/CommandLineTools/usr/lib/clang/8.1.0/include/",
        "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1/tr1/",
        "/usr/include/c++/4.2.1",
        "/usr/local/include",
        "/usr/include"
    ]
}]

Hinweis : Sie können die c_cpp_properties.json-Datei auch mit dem Befehl C/Cpp: Edit Configurations in der Befehlspalette (⇧⌘P) öffnen/erzeugen.

7
ryenus

Die Standardüberschriften für Ihr Projekt konfigurieren Sie am besten, indem Sie die Eigenschaft compilerPath auf die Konfigurationen in Ihrer Datei c_cpp_properties.json Setzen. Es wird nicht empfohlen, System-Include-Pfade zur Eigenschaft includePath hinzuzufügen.

Wenn Sie c_cpp_properties.json Nicht verwenden möchten, können Sie auch die Einstellung C_Cpp.default.compilerPath Festlegen.

1
Bob Brown

Fügen Sie in Ihren Benutzereinstellungen hinzu:

"C_Cpp.default.includePath":["path1","path2"]
0
regomodo

Diese Antwort ist möglicherweise zu spät, aber ich habe das Problem nur zufällig behoben ... Hier ist meine Datei c_cpp_properties.json:

{
"configurations": [
    {
        "name": "Linux",
        "includePath": [
            "${workspaceFolder}/**",                
            "/usr/include/c++/5.4.0/",
            "usr/local/include/",
            "usr/include/"
        ],
        "defines": [],
        "compilerPath": "/usr/bin/gcc",
        "cStandard": "c11",
        "cppStandard": "c++14",
        "intelliSenseMode": "clang-x64"
    }
],
"version": 4

}

0
100rabh