Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
CMake kullanmayan Klasör projelerini aç, IntelliSense için proje yapılandırma ayarlarını bir CppProperties.json dosyada depolayabilir. (CMake projeleri bir CMakeSettings.json dosya kullanır.) Yapılandırma ad/değer çiftlerinden oluşur ve #include yollarını, derleyici anahtarlarını ve diğer parametreleri tanımlar. Klasör Aç projesine yapılandırma ekleme hakkında daha fazla bilgi için bkz . C++ için Klasör Projelerini Açma. Aşağıdaki bölümlerde çeşitli ayarlar özetlemektedir. Şemanın tam açıklaması için gidin.
Yapılandırma özellikleri
Yapılandırma aşağıdaki özelliklerden herhangi birine sahip olabilir:
| Veri Akışı Adı | Açıklama |
|---|---|
inheritEnvironments |
Bu yapılandırmaya hangi ortamların uygulanacağını belirtir. |
name |
C++ yapılandırma açılan listesinde görünecek yapılandırma adı |
includePath |
Ekleme yolunda belirtilmesi gereken klasörlerin virgülle ayrılmış listesi (çoğu derleyici için /I eşler) |
defines |
Tanımlanması gereken makroların listesi (çoğu derleyici için ile eşler /D ) |
compilerSwitches |
IntelliSense davranışını etkileyebilecek bir veya daha fazla ek anahtar |
forcedInclude |
Her derleme birimine otomatik olarak eklenecek üst bilgi (MSVC veya /FI clang için olarak eşlenmiştir-include) |
undefines |
Tanımlanmamış makroların listesi (MSVC için ile eşleniyor /U ) |
intelliSenseMode |
Kullanılacak IntelliSense altyapısı. MSVC, gcc veya Clang için önceden tanımlanmış mimariye özgü değişkenlerden birini belirtebilirsiniz. |
environments |
Komut isteminde ortam değişkenleri gibi davranan ve makroyla ${env.VARIABLE} erişilen kullanıcı tanımlı değişken kümeleri. |
intelliSenseMode değerleri
Kod düzenleyicisi, yazmaya başladığınızda kullanılabilir seçenekleri gösterir:
Bu listede desteklenen değerler gösterilir:
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
Not: ve msvc-x86 değerleri msvc-x64 yalnızca eski nedenlerle desteklenir.
windows-msvc-* Bunun yerine varyantları kullanın.
Önceden Tanımlanmış Ortamlar
Visual Studio, Microsoft C++ için ilgili Geliştirici Komut İstemi ile eşlenen aşağıdaki önceden tanımlanmış ortamları sağlar. Bu ortamlardan birini devraldığınızda, şu makro söz dizimi ile genel özelliğini env kullanarak ortam değişkenlerinden herhangi birine başvurabilirsiniz: ${env.VARIABLE}.
| Değişken Adı | Açıklama |
|---|---|
vsdev |
Varsayılan Visual Studio ortamı |
msvc_x86 |
x86 araçlarını kullanarak x86 için derleme |
msvc_x64 |
64 bit araçları kullanarak AMD64 için derleme |
msvc_arm |
x86 araçlarını kullanarak ARM için derleme |
msvc_arm64 |
x86 araçlarını kullanarak ARM64 için derleme |
msvc_x86_x64 |
x86 araçlarını kullanarak AMD64 için derleme |
msvc_arm_x64 |
64 bit araçları kullanarak ARM için derleme |
msvc_arm64_x64 |
64 bit araçları kullanarak ARM64 için derleme |
Linux iş yükü yüklendiğinde, Linux ve WSL'yi uzaktan hedeflemek için aşağıdaki ortamlar kullanılabilir:
| Değişken Adı | Açıklama |
|---|---|
linux_x86 |
x86 Linux'ı uzaktan hedefleme |
linux_x64 |
x64 Linux'ı uzaktan hedefleme |
linux_arm |
ARM Linux'ı uzaktan hedefleme |
Kullanıcı tanımlı ortamlar
İsteğe bağlı olarak, genel olarak veya yapılandırma başına değişken environments kümeleri tanımlamak için özelliğini kullanabilirsinizCppProperties.json. Bu değişkenler, Klasör Aç projesi bağlamında ortam değişkenleri gibi davranır. Burada ${env.VARIABLE} tanımlandıktan sonra ve tasks.vs.json bu launch.vs.json söz dizimiyle bunlara erişebilirsiniz. Ancak Visual Studio'nun dahili olarak kullandığı herhangi bir komut isteminde gerçek ortam değişkenleri olarak ayarlanmamıştır.
Visual Studio 2019 sürüm 16.4 ve üzeri: içinde CppProperties.json tanımlanan yapılandırmaya özgü değişkenler, hata ayıklama hedefleri ve görevleri tarafından ayarlanması inheritEnvironmentsgerekmeden otomatik olarak alınır. Hata ayıklama hedefleri içinde belirttiğiniz CppProperties.jsonortamla otomatik olarak başlatılır.
Visual Studio 2019 sürüm 16.3 ve öncesi: Bir ortam kullandığınızda, ortam aynı yapılandırmanın inheritsEnvironments parçası olarak tanımlansa bile özelliğinde bunu belirtmeniz gerekir; environment özellik ortamın adını belirtir. Aşağıdaki örnekte, MSYS2 yüklemesinde GCC için IntelliSense'i etkinleştirmeye yönelik örnek bir yapılandırma gösterilmektedir. Yapılandırmanın ortamı nasıl tanımlayıp devraldığı mingw_64 ve özelliğinin değişkene nasıl erişebileceğine includePathINCLUDE dikkat edin.
"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"
}
]
}
]
Bir yapılandırma içinde bir "environments" özellik tanımladığınızda, aynı adlara sahip tüm genel değişkenleri geçersiz kılar.
Yerleşik makrolar
içinde CppProperties.jsonaşağıdaki yerleşik makrolara erişiminiz vardır:
| Makro | Açıklama |
|---|---|
${workspaceRoot} |
Çalışma alanı klasörünün tam yolu |
${projectRoot} |
Yerleştirildiği CppProperties.json klasörün tam yolu |
${env.vsInstallDir} |
Visual Studio'nun çalışan örneğinin yüklü olduğu klasörün tam yolu |
Örnek
Projenizde bir ekleme klasörü varsa ve * ve Windows SDK'sından diğer ortak üst bilgileri içeriyorsa *windows.h, yapılandırma dosyanızı CppProperties.json aşağıdakilerle güncelleştirmek isteyebilirsiniz:
{
"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"
]
}
]
}
Not
%WindowsSdkDir% ve %VCToolsInstallDir% genel ortam değişkenleri olarak ayarlanmaz. Bu değişkenleri tanımlayan bir Geliştirici Komut İstemi'nden başladığınızdan devenv.exe emin olun. (Geliştirici Komut İstemi kısayolunu bulmak için Windows Başlat Menüsü'ne "geliştirici" yazın.)
IntelliSense hatalarını giderme
Beklediğiniz IntelliSense'i görmüyorsanız, Araçlar> gidip Günlüğü >sorun giderebilirsiniz. Başlangıç olarak Günlük Düzeyi'ni 5, Günlük Filtreleri'ni 8 olarak ayarlamayı deneyin.
Çıkış, Çıkış Penceresine yöneltilir ve Çıktıyı Göster'i seçtiğinizde görünür: Visual C++ Günlüğü. Çıktı, diğer şeylerin dışında, IntelliSense'in kullanmaya çalıştığı yolları da içerir. Yollar içindekilerle CppProperties.jsoneşleşmiyorsa, klasörü kapatmayı ve önbelleğe alınmış gözatma verilerini içeren alt klasörü silmeyi .vs deneyin.
Eksik ekleme yollarından kaynaklanan IntelliSense hatalarını gidermek için Hata Listesi sekmesini açın ve çıktısını "Yalnızca IntelliSense" ve E1696 "...dosyasını açık kaynak" hata koduna filtreleyin.