Wie und wo kann ich in den folgenden Konfigurationen Include-Pfade hinzufügen?
Die Liste ist ein String-Array, daher würde das Hinzufügen eines Include-Pfads 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 verfügt über ein GIF, das das Format für die Win32-Konfiguration anzeigt. Gleiches gilt jedoch auch für die anderen.
Das obige Beispiel enthält den SDK-Pfad (OSX 10.11), wenn Xcode installiert ist .
Hinweis Ich finde, dass die Aktualisierung eine Weile dauern kann, sobald der Include-Pfad geändert wurde.
Die Erweiterung cpptools finden Sie hier .
Weitere Dokumentation (von Microsoft) zur C ++ - Sprachunterstützung in VSCode finden Sie hier .
Im Jahr 2018 fügte die C ++ - Erweiterung der Konfiguration compilerPath
der c_cpp_properties.json
Datei eine weitere Option hinzu .
compilerPath
(optional) Der absolute Pfad zum Compiler, mit dem Sie Ihr Projekt erstellen. Die Erweiterung fragt den Compiler ab, um die Systemeinschlusspfade und Standarddefinitionen für IntelliSense zu ermitteln.
Bei Verwendung wird das includePath
nicht benötigt, da IntelliSense den Compiler verwendet, um die Systemeinschlusspfade zu ermitteln.
Aus Gründen der Aufbewahrung (aus der Diskussion) sind im Folgenden grundlegende Ausschnitte für den Inhalt der Datei task.json aufgeführt, mit denen entweder eine C ++ - oder eine C-Datei kompiliert und ausgeführt werden kann. Sie lassen Leerzeichen im Dateinamen zu (erfordert das Umgehen der zusätzlichen Anführungszeichen im json mit \"
). Die Shell wird als Runner verwendet und ermöglicht so die Kompilierung ( clang...
) und Ausführung ( && ./a.out
) des Programms. Es wird auch davon ausgegangen, dass die Datei task.json im lokalen Arbeitsbereich (unter dem Verzeichnis .vscode) "lebt". Weitere task.json-Details wie unterstützte Variablen usw. finden Sie hier .
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"]
}
/**
für ein rekursives Include verwenden können :"includePath":[ "C:/path/to/all/includes/**" ]
.compilerPath
Eigenschaft zum Festlegen der Systemeinschlüsse / -definitionen zu verwenden, anstatt sie derincludePath
Eigenschaft hinzuzufügen .Für alle, die von Google abfallen, ist dies hier das Update für VSCode 1.40 (2019):
Öffnen Sie die Datei global settings.json: Datei> Einstellungen> Einstellungen
Wählen Sie dann die Registerkarte 'Benutzer', öffnen Sie den Abschnitt 'Erweiterungen' und klicken Sie auf 'C / C ++'. Scrollen Sie dann im rechten Bereich, bis Sie die Schaltfläche "In settings.json bearbeiten" finden.
Zuletzt fügen Sie den Abschnitt "C_Cpp.default.includePath" hinzu. Der dort bereitgestellte Code stammt von meinem eigenen System (Windows 7). Sie können es als Basis für Ihre eigenen Bibliothekspfade verwenden. (Denken Sie daran, den
YOUR USERNAME
Benutzernamen auf Ihr korrektes System (meine Fallfenster) zu ändern. )(Informationen bearbeiten: Es gibt ein Problem mit der Rekursion meines Ansatzes. VSCode mag nicht mehrere Definitionen für dieselbe Sache. Ich habe es mit gelöst.
"C_Cpp.intelliSenseEngine": "Tag Parser"
)Der Code vor Zeile 7 in der Datei settings.json hat nichts mit arduino oder includePath zu tun. Sie dürfen das nicht kopieren ...
JSON-Abschnitt zum Hinzufügen zu settings.json:
"C_Cpp.default.includePath": [ "C:/Program Files (x86)/Arduino/libraries/**", "C:/Program Files (x86)/Arduino/hardware/arduino/avr/cores/arduino/**", "C:/Program Files (x86)/Arduino/hardware/tools/avr/avr/include/**", "C:/Program Files (x86)/Arduino/hardware/tools/avr/lib/gcc/avr/5.4.0/include/**", "C:/Program Files (x86)/Arduino/hardware/arduino/avr/variants/standard/**", "C:/Users/<YOUR USERNAME>/.platformio/packages/framework-arduinoavr/**", "C:/Users/<YOUR USERNAME>/Documents/Arduino/libraries/**", "{$workspaceFolder}/libraries/**", "{$workspaceFolder}/**" ], "C_Cpp.intelliSenseEngine": "Tag Parser"
quelle
#include <mysql.h>
in meinem Fall nichtsettings.json
"C_Cpp.default.includePath": ["C:\\Program Files\\MariaDB\\MariaDB Connector C 64-bit\\include\\**"]
/
derjenige sein und nicht der Backslash ``.Überprüfen Sie für Mac-Benutzer, die nur Befehlszeilentools anstelle von Xcode haben , das
/Library/Developer/CommandLineTools/
Verzeichnis, z."configurations": [{ "name": "Mac", "includePath": [ "/usr/local/include", // others, e.g.: "/usr/local/opt/ncurses/include/", "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include", "${workspaceFolder}/**" ] }]
Sie müssen den Pfad wahrscheinlich anpassen, wenn Sie eine andere Version der Befehlszeilentools installiert haben.
quelle
Fügen Sie in Ihren Benutzereinstellungen Folgendes hinzu:
"C_Cpp.default.includePath":["path1","path2"]
quelle
Der beste Weg, um die Standardheader für Ihr Projekt zu konfigurieren, besteht darin, die
compilerPath
Eigenschaft auf die Konfigurationen in Ihrerc_cpp_properties.json
Datei festzulegen. Es wird nicht empfohlen, derincludePath
Eigenschaft Systemeinschlusspfade hinzuzufügen .Eine andere Option, wenn Sie es vorziehen, nicht zu verwenden,
c_cpp_properties.json
ist dasC_Cpp.default.compilerPath
Festlegen der Einstellung.quelle
c_cpp_properties.json
Datei? Ich scheine mich zu erinnern, dass es eine gab, unter~/.vscode/
oder vielleicht~/.vscode-oss/
(unter Linux); jetzt sehe ich keinen.c_cpp_properties.json
Datei. Sie können dieC_Cpp.default.*
Einstellungen jedoch verwenden, um einen ähnlichen Effekt zu erzielen.Diese Antwort ist vielleicht zu spät, aber ich habe das Problem gerade 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
}}
quelle
compilerPath
ist der Weg zu gehen. Sie sollten System-Include-Pfade aus derincludePath
Eigenschaft entfernen .Ich habe dieses Problem gelöst, indem ich Visual Studio deinstalliert habe, das ich kürzlich installiert hatte.
quelle