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.
Bazı durumlarda IntelliSense'in düzgün çalışmasını sağlamak için C++ projenizi el ile yapılandırmanız gerekebilir. MSBuild projeleri için (dosyalara göre .vcxproj ), proje özelliklerindeki ayarları ayarlayabilirsiniz. MSBuild olmayan projelerde CppProperties.json , dosyanın ayarlarını projenin kök dizininde ayarlarsınız. Bazı durumlarda, IntelliSense'in makro tanımlarını anlamasına yardımcı olmak için bir ipucu dosyası oluşturmanız gerekebilir. Visual Studio IDE, IntelliSense sorunlarını belirlemenize ve çözmenize yardımcı olur.
Tek dosyalı IntelliSense
Projeye dahil olmayan bir dosyayı açtığınızda, Visual Studio IntelliSense desteği sağlar ancak varsayılan olarak hata altı çizgileri göstermez. Gezinti Çubuğu'ndaÇeşitli Dosyalar yazıyorsa, bu büyük olasılıkla neden yanlış kod altında hata dalgalı çizgiler görmediğinizi veya önişlemci makronun neden tanımlanmadığını açıklar.
Hata Listesini Denetleme
Bir dosya tek dosya modunda açık değilse ve IntelliSense düzgün çalışmıyorsa, denetlenecek ilk yer Hata Listesi penceresidir. Geçerli kaynak dosyanın tüm IntelliSense hatalarını ve dahil edilen tüm üst bilgi dosyalarını görmek için açılan listeden Derleme + IntelliSense seçeneğini seçin.
IntelliSense en fazla 1.000 hata üretir. Bir kaynak dosyanın dahil ettiği başlık dosyalarında 1.000'den fazla hata varsa, kaynak dosya, dosyanın en başında yalnızca tek bir hata dalgalı çizgisi gösterir.
#include yollarının doğru olduğundan emin olun
MSBuild projeleri
Derlemelerinizi Visual Studio IDE dışında çalıştırırsanız ve derlemeleriniz başarılı oluyorsa ancak IntelliSense yanlışsa, komut satırınız bir veya daha fazla yapılandırmanın proje ayarlarıyla eşitlenmemiş olabilir. Çözüm Gezgini proje düğümüne sağ tıklayın ve tüm #include yollarının geçerli yapılandırma ve platform için doğru olduğundan emin olun. Yollar tüm yapılandırmalarda ve platformlarda aynıysa, Tüm yapılandırmalar ve Tüm platformlar’ü seçebilir ve ardından yolların doğru olduğunu doğrulayabilirsiniz.
VC_IncludePath gibi derleme makrolarının geçerli değerlerini görmek için Dizinleri Ekle açılan listesini seçin. <Ardından Düzenle> ve Makrolar düğmesini seçin.
Makefile projeleri
NMake proje şablonunu temel alan Makefile projeleri için Yapılandırma Özellikleri'nin altında NMake'yi seçin ve ardından IntelliSense kategorisinde Arama yolunu ekle'yi seçin:
CMake projeleri
CMake projeleri için, içindeki tüm yapılandırmalar CMakeLists.txtiçin #include yollarının doğru belirtildiğine emin olun. Diğer proje türleri bir CppProperties.json dosya gerektirebilir. Daha fazla bilgi için bkz . CppProperties.jsonile kod gezintisini yapılandırma . Dosyada tanımlanan her yapılandırma için yolların doğru olduğundan emin olun.
Dosyada CppProperties.json söz dizimi hatası varsa, etkilenen dosyalardaki IntelliSense yanlıştır. Visual Studio, hatayı Çıkış Penceresi'nde görüntüler.
Etiket ayrıştırıcı sorunları
Etiket ayrıştırıcısı, göz atma ve gezinti için kullanılan bulanık bir C++ ayrıştırıcıdır. Hızlıdır ancak her kod yapısını tamamen kavramaya çalışmaz.
Örneğin, ön işlemci makrolarını değerlendirmez ve bu nedenle bunları yoğun şekilde kullanan kodu yanlış ayrıştırabilir. Etiket Ayrıştırıcısı tanıdık olmayan bir kod yapısıyla karşılaştığında, kodun tüm bölgesini atlayabilir.
Bu sorunun Visual Studio'da bildirildiği iki yaygın yol vardır:
IDE, zaten tanımlanmış bir işlev için işlev tanımı oluşturmayı sunar.
Gezinti çubuğunda en içteki bir makro gösterildiyse geçerli işlev tanımı atlandı:
Kod parçacığı, işlev main içinde kullanılan do_if için bir makro tanımı gösterir. Etiket ayrıştırıcısı makroyu anlamadığından, geçerli işlevin adının ana olduğunu gösteren gezinti açılan listesi yerine makronun adını gösterir: do_if.
Bu tür sorunları düzeltmek için çözüm dizininizin köküne adlı cpp.hint bir dosya ekleyin. Daha fazla bilgi için bkz. İpucu Dosyaları.
Etiket ayrıştırıcı hataları Hata Listesi penceresinde görüntülenir.
Tanılama kaydı kullanarak proje ayarlarını doğrulayın
IntelliSense derleyicisinin Dahil Etme Yolları ve Önişlemci makroları da dahil olmak üzere doğru derleyici seçeneklerini kullanıp kullanmadığını denetlemek için IntelliSense komut satırlarının Tanılama Günlüğünü Etkinleştirin.
Araçlar>Seçenekleri bölmesini açın ve Tüm Ayarlar>Dilleri>C/C++>IntelliSense>Tanılama günlüğü bölümünü genişletin.
Tanılama bilgilerini çıkış penceresine kaydet onay kutusunu seçin.
Günlük kaydı seviyesi değerini 5 (en ayrıntılı) olarak ayarlayın.
Günlük filtresi değerini 8 (IntelliSense günlüğü) olarak ayarlayın.
Araçlar>Seçenekleri iletişim kutusunu açın ve Metin Düzenleyicisi>C/C++>Gelişmiş bölümünü genişletin.
Tanılama Günlüğü grubunda, Günlüğü Etkinleştir seçeneğini 'True' olarak ayarlayın.
Günlük Düzeyi değerini 5 (en ayrıntılı) olarak ayarlayın.
Günlük Filtresi değerini 8 (IntelliSense günlüğü) olarak ayarlayın.
Tamam'ı seçin.
Çıkış Penceresi artık IntelliSense derleyicisine geçirilen komut satırlarını gösterir. Aşağıda örnek bir çıkış verilmişti:
[IntelliSense] Configuration Name: Debug|Win32
[IntelliSense] Toolset IntelliSense Identifier:
[IntelliSense] command line options:
/c
/I.
/IC:\Repo\Includes
/DWIN32
/DDEBUG
/D_DEBUG
/Zc:wchar_t-
/Zc:forScope
/Yustdafx.h
Bu bilgiler IntelliSense'in neden yanlış bilgiler sağladığını anlamanıza yardımcı olabilir. Örneğin, projenizin Include dizini $(MyVariable)\Include içeriyorsa ve tanılama günlüğü /I\Include olarak bir Ekleme yolu gösteriyorsa, bu, $(MyVariable)'nin değerlendirilmediği ve son ekleme yolundan kaldırıldığı anlamına gelir.
IntelliSense yapısı hakkında
Visual Studio, tüm IntelliSense özelliklerini destekleyen veritabanını oluşturmak ve korumak için ayrılmış bir C++ derleyicisi kullanır. IntelliSense veritabanını kodla eşitlenmiş durumda tutmak için Visual Studio, proje ayarlarında veya kaynak dosyalarda yapılan bazı değişikliklere yanıt olarak IntelliSense yalnızca derlemelerini otomatik olarak arka plan görevleri olarak başlatır.
Ancak bazı durumlarda Visual Studio, IntelliSense veritabanını zamanında güncelleştiremeyebilir. Örneğin, bir git pull veya git checkout komutu çalıştırdığınızda Visual Studio'da dosyalardaki değişikliklerin algılanabilir olması bir saat kadar sürebilir. Çözüm Gezgini 'nde proje düğümüne sağ tıklayıp "Çözümü Yeniden Tara" seçeneğini seçerek çözümdeki tüm dosyaların yeniden taranmasını zorlayabilirsiniz.
IntelliSense derleme hatalarını giderme
IntelliSense derlemesi ikili dosyalar oluşturmaz, ancak yine de başarısız olabilir. Hatanın olası nedenlerinden biri özel .props veya .targets dosyalardır. Visual Studio 2017 sürüm 15.6 ve sonraki sürümlerinde yalnızca IntelliSense derleme hataları Çıkış penceresine kaydedilir. Bunları görmek için Çıkışı göster seçeneğiniÇözüm olarak ayarlayın:
Hata iletisi, tasarım zamanı izlemeyi etkinleştirmenizi isteyebilir:
error: Designtime build failed for project 'E:\src\MyProject\MyProject.vcxproj',
configuration 'Debug|x64'. IntelliSense might be unavailable.
Set environment variable TRACEDESIGNTIME=true and restart
Visual Studio to investigate.
Ortam değişkenini TRACEDESIGNTIME true olarak ayarlar ve Visual Studio'yu yeniden başlatırsanız, dizinde derleme hatasını %TEMP% tanılamaya yardımcı olabilecek bir günlük dosyası görürsünüz.
Ortam değişkeni TRACEDESIGNTIME hakkında daha fazla bilgi edinmek için Roslyn ve Tasarım zamanı derlemeleri kısmına bakın. Bu makalelerdeki bilgiler C++ projeleri için geçerlidir.