Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Projekty open Folder, které nepoužívají CMake, můžou ukládat nastavení konfigurace projektu pro IntelliSense v CppProperties.json souboru. (Projekty CMake používají CMakeSettings.json soubor.) Konfigurace se skládá z párů název/hodnota a definuje #include cesty, přepínače kompilátoru a další parametry. Další informace o tom, jak přidat konfigurace v projektu Otevřít složku, naleznete v tématu Projekty otevřít složku pro C++. Následující části shrnují různá nastavení. Úplný popis schématu najdete v části CppProperties_schema.json, jejíž úplná cesta je uvedena v horní části editoru kódu při CppProperties.json otevření.
Vlastnosti konfigurace
Konfigurace může mít některou z následujících vlastností:
| Název | Popis |
|---|---|
inheritEnvironments |
Určuje, která prostředí se na tuto konfiguraci vztahují. |
name |
Název konfigurace, který se zobrazí v rozevíracím seznamu konfigurace C++ |
includePath |
Seznam složek oddělených čárkami, které by se měly zadat v cestě include (mapuje se na /I většinu kompilátorů) |
defines |
Seznam maker, která by měla být definována (mapuje se na /D většinu kompilátorů) |
compilerSwitches |
Jeden nebo více dalších přepínačů, které můžou ovlivnit chování technologie IntelliSense |
forcedInclude |
Hlavička, která se má automaticky zahrnout do každé kompilační jednotky (mapuje se na /FI MSVC nebo -include pro clang) |
undefines |
Seznam maker, která se mají nedefinovat (mapuje se na /U MSVC) |
intelliSenseMode |
Modul IntelliSense, který se má použít. Můžete zadat jednu z předdefinovaných variant specifických pro architekturu MSVC, gcc nebo Clang. |
environments |
Uživatelem definované sady proměnných, které se chovají jako proměnné prostředí v příkazovém řádku a jsou přístupné pomocí ${env.VARIABLE} makra. |
IntelliSenseMode – hodnoty
Když začnete psát, editor kódu zobrazí dostupné možnosti:
Tento seznam zobrazuje podporované hodnoty:
windows-msvc-x86windows-msvc-x64windows-msvc-armwindows-msvc-arm64android-clang-x86android-clang-x64android-clang-armandroid-clang-arm64ios-clang-x86ios-clang-x64ios-clang-armios-clang-arm64windows-clang-x86windows-clang-x64windows-clang-armwindows-clang-arm64linux-gcc-x86linux-gcc-x64linux-gcc-arm
Poznámka: Hodnoty msvc-x86 a msvc-x64 jsou podporovány pouze ze starších důvodů.
windows-msvc-* Místo toho použijte varianty.
Předdefinovaná prostředí
Visual Studio poskytuje následující předdefinovaná prostředí pro Microsoft C++, která se mapuje na odpovídající příkazový řádek pro vývojáře. Když zdědíte jedno z těchto prostředí, můžete odkazovat na libovolnou z proměnných prostředí pomocí globální vlastnosti env s touto syntaxí makra: ${env.VARIABLE}.
| Název proměnné | Popis |
|---|---|
vsdev |
Výchozí prostředí sady Visual Studio |
msvc_x86 |
Kompilace pro x86 pomocí nástrojů x86 |
msvc_x64 |
Kompilace pro AMD64 pomocí 64bitových nástrojů |
msvc_arm |
Kompilace pro ARM pomocí nástrojů x86 |
msvc_arm64 |
Kompilace pro ARM64 pomocí nástrojů x86 |
msvc_x86_x64 |
Kompilace pro AMD64 pomocí nástrojů x86 |
msvc_arm_x64 |
Kompilace pro ARM pomocí 64bitových nástrojů |
msvc_arm64_x64 |
Kompilace pro ARM64 pomocí 64bitových nástrojů |
Při instalaci linuxové úlohy jsou k dispozici následující prostředí pro vzdálené cílení na Linux a WSL:
| Název proměnné | Popis |
|---|---|
linux_x86 |
Vzdáleně cílit na x86 Linux |
linux_x64 |
Vzdáleně cílit na x64 Linux |
linux_arm |
Vzdálené cílení ARM na Linux |
Uživatelsky definovaná prostředí
Volitelně můžete vlastnost použít environments k definování sad proměnných v CppProperties.json globální nebo konfiguraci. Tyto proměnné se chovají jako proměnné prostředí v kontextu projektu Open Folder. K nim můžete přistupovat pomocí ${env.VARIABLE} syntaxe z tasks.vs.json a launch.vs.json po jejich definování. Nemusí se ale nutně nastavovat jako skutečné proměnné prostředí v žádném příkazovém řádku, který Visual Studio interně používá.
Visual Studio 2019 verze 16.4 a novější: Proměnné specifické pro konfiguraci definované v CppProperties.json sadě se automaticky vyberou podle cílů ladění a úkolů bez nutnosti nastavit inheritEnvironments. Cíle ladění se spustí automaticky s prostředím, ve CppProperties.jsonkterém zadáte .
Visual Studio 2019 verze 16.3 a starší: Když prostředí používáte, musíte ho zadat ve inheritsEnvironments vlastnosti, i když je prostředí definováno jako součást stejné konfigurace; environment vlastnost určuje název prostředí. Následující příklad ukazuje ukázkovou konfiguraci pro povolení technologie IntelliSense pro GCC v instalaci MSYS2. Všimněte si, jak konfigurace definuje a dědí mingw_64 prostředí a jak includePath má vlastnost přístup k INCLUDE proměnné.
"configurations": [
{
"inheritEnvironments": [
"mingw_64"
],
"name": "Mingw64",
"includePath ,": [
"${env.INCLUDE}",
"${workspaceRoot}\\**",
],
"intelliSenseMode": "linux-gcc-x64",
"environments": [
{
"MINGW64_ROOT": "C:\\msys64\\mingw64",
"BIN_ROOT": "${env.MINGW64_ROOT}\\bin",
"FLAVOR": "x86_64-w64-mingw32",
"TOOLSET_VERSION": "9.1.0",
"PATH": "${env.MINGW64_ROOT}\\bin;${env.MINGW64_ROOT}\\..\\usr\\local\\bin;${env.MINGW64_ROOT}\\..\\usr\\bin;${env.MINGW64_ROOT}\\..\\bin;${env.PATH}",
"INCLUDE": "${env.MINGW64_ROOT}\\include\\c++\\${env.TOOLSET_VERSION};${env.MINGW64_ROOT}\\include\\c++\\${env.TOOLSET_VERSION}\\tr1;${env.MINGW64_ROOT}\\include\\c++\\${env.TOOLSET_VERSION}\\${env.FLAVOR};",
"environment": "mingw_64"
}
]
}
]
Když definujete "environments" vlastnost uvnitř konfigurace, přepíše všechny globální proměnné, které mají stejné názvy.
Integrovaná makra
Máte přístup k následujícím předdefinovaných makrem uvnitř CppProperties.json:
| Makro | Popis |
|---|---|
${workspaceRoot} |
Úplná cesta ke složce pracovního prostoru |
${projectRoot} |
Úplná cesta ke složce, do které CppProperties.json se umístí |
${env.vsInstallDir} |
Úplná cesta ke složce, ve které je nainstalovaná spuštěná instance sady Visual Studio |
Příklad
Pokud má váš projekt složku include a obsahuje *windows.htaké * a další běžné hlavičky ze sady Windows SDK, můžete konfigurační soubor aktualizovat CppProperties.json následujícím postupem:
{
"configurations": [
{
"name": "Windows",
"includePath": [
// local include folder
"${workspaceRoot}\\include",
// Windows SDK and CRT headers
"${env.WindowsSdkDir}\\include\\${env.WindowsSDKVersion}\\ucrt",
"${env.NETFXSDKDir}\\include\\um",
"${env.WindowsSdkDir}\\include\\${env.WindowsSDKVersion}\\um",
"${env.WindowsSdkDir}\\include\\${env.WindowsSDKVersion}\\shared",
"${env.VCToolsInstallDir}\\include"
]
}
]
}
Poznámka:
%WindowsSdkDir% a %VCToolsInstallDir% nejsou nastaveny jako globální proměnné prostředí. Nezapomeňte začít devenv.exe z příkazového řádku pro vývojáře, který definuje tyto proměnné. (Zadáním "developer" v nabídce Start systému Windows vyhledejte zástupce příkazového řádku pro vývojáře.)
Řešení chyb IntelliSense
Pokud nevidíte technologii IntelliSense, kterou očekáváte, můžete řešit potíže tak, že přejdete do > a nastavíte povolit protokolování do .> Začněte tím, že zkusíte nastavit úroveň protokolování na 5 a filtry protokolování na 8.
Výstup se předá do okna Výstup a je viditelný, když zvolíte Zobrazit výstup: Protokol Visual C++. Výstup obsahuje mimo jiné seznam skutečných cest zahrnutí, které se IntelliSense pokouší použít. Pokud se cesty neshodují s cestami, CppProperties.jsonzkuste zavřít složku a odstranit .vs podsložku, která obsahuje data procházení v mezipaměti.
Pokud chcete vyřešit chyby IntelliSense způsobené chybějícími cestami k zahrnutí, otevřete kartu Seznam chyb a vyfiltrujte jeho výstup pouze na IntelliSense a kód chyby E1696 "nemůže otevřít zdrojový soubor...".