Ich benutze Visual Studio Code 1.14.2 auf macOS Sierra und habe die Microsoft C/C++ ms-vscode.cpptools
Erweiterung installiert, aber habe Probleme beim Einrichten der Include-Pfade, um Standardbibliothek Header richtig von IntelliSense überprüft zu bekommen, ohne Fehler zu erzeugen und zurückzufallen zum Tag-Parser-Mechanismus.Was sind die korrekten macOS vscode intellisense C++ - Include-Pfade für die Standardbibliothek?
Der Standard c_cpp_properties.json
enthält die folgenden für diese vscode Version:
{
"configurations": [
{
"name": "Mac",
"includePath": [
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1",
"/usr/local/include",
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/include",
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
"/usr/include",
"${workspaceRoot}"
],
"defines": [],
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1",
"/usr/local/include",
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/include",
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
"/usr/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
...
}
Zum Beispiel mit einem einfachen C++ Datei wie:
#include <exception>
int main() {
return 0;
}
Die #include <exception>
unterstrichen wird. Bewegen der Maus über sie heißt es:
Datei: 'file: ///path/to/vscode.cc' Schwere: 'Info' Meldung: ‚# include Fehler erkannt. Bitte aktualisieren Sie Ihren includePath. IntelliSense-Funktionen für diese Übersetzungseinheit (/path/to/vscode.cc) werden vom Tag-Parser bereitgestellt. an: '1,1' Quelle: ''
und
Datei: 'file: ///path/to/vscode.cc' Schwere: 'Info' Nachricht '1,1' Quelle:: 'nicht Open-Source-Datei "endian.h" (Abhängigkeit von "Ausnahme") kann' bei ''
ich eine Suche nach meinem Dateisystem für endian.h
tat. Beschneiden Sie die Möglichkeiten, die tatsächlich relevant scheinen für Host-Entwicklung (das heißt dropping iOS/WatchOS/etc.):
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/i386/endian.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/machine/endian.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/i386/endian.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/machine/endian.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/i386/endian.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/machine/endian.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h
/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/i386/endian.h
/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/machine/endian.h
/usr/include/i386/endian.h
/usr/include/machine/endian.h
Wer weiß, was die richtige Lösung für dieses Problem ist?
Ich sah https://stackoverflow.com/questions/37522462/visual-studio-code-includepath und die Kommentare dazu, aber trotz der Antworten dort sehe ich immer noch das gleiche Problem. Ich habe versucht, den vorgeschlagenen Pfad zur Liste der Include-Pfade hinzuzufügen, und es hat nicht geholfen. – robswain