Aracılığıyla paylaş


Visual Studio'da Clang-Tidy kullanma

Clang-Tidy desteği için Visual Studio 2019 sürüm 16.4 veya üzeri gerekir. Bu sürümün belgelerini görmek için, bu makalenin Visual Studio Sürüm seçici denetimini Visual Studio 2019 veya üzeri olarak ayarlayın. Bu sayfadaki içindekiler tablosunun en üstünde yer alır.

Kod Analizi, Ister Clang ister MSVC araç setlerini kullansın, hem MSBuild hem de CMake projeleri için Clang-Tidy'ı yerel olarak destekler. Clang-Tidy denetimleri arka plan kodu analizinin bir parçası olarak çalıştırılabilir. Bunlar düzenleyici içi uyarılar (dalgalı çizgiler) olarak görünür ve Hata Listesi'nde görüntülenir.

Clang-Tidy desteği Visual Studio 2019 sürüm 16.4'den itibaren kullanılabilir. Visual Studio Yükleyicisi bir C++ iş yükü seçtiğinizde otomatik olarak eklenir.

Clang-Tidy, HEM MSBuild hem de CMake'de kullanılabilen LLVM/clang-cl araç takımını kullanırken varsayılan analiz aracıdır. Standart Kod Analizi deneyiminin yanı sıra çalışmak veya değiştirmek için bir MSVC araç takımı kullanırken bunu yapılandırabilirsiniz. Clang-cl araç takımını kullanıyorsanız Microsoft Code Analysis kullanılamaz.

Clang-Tidy başarılı bir derlemeden sonra çalışır. Clang-Tidy sonuçlarını almak için kaynak kodu hatalarını çözmeniz gerekebilir.

MSBuild

Clang-Tidy'ı hem Kod Analizi'nin bir parçası olarak çalışacak şekilde yapılandırabilir hem de Proje Özellikler penceresi Kod Analiziderleyebilirsiniz. Aracı yapılandırma seçenekleri Clang-Tidy alt menüsünde bulunabilir.

Daha fazla bilgi için bkz . Nasıl yapılır: C/C++ Projeleri için Kod Analizi Özelliklerini Ayarlama.

CMake

CMake projelerinde veya CMakeSettings.jsoniçinde CMakePresets.json Clang-Tidy denetimlerini yapılandırabilirsiniz.

Clang-Tidy aşağıdaki anahtarları tanır:

  • enableMicrosoftCodeAnalysis: Microsoft Code Analysis'i etkinleştirir
  • enableClangTidyCodeAnalysis: Clang-Tidy analizini etkinleştirir
  • clangTidyChecks: Clang-Tidy yapılandırması. Etkinleştirme veya devre dışı bırakma denetimlerinin virgülle ayrılmış listesi. Baştaki - denetim devre dışı bırakılır. Örneğin, cert-oop58-cpp, -cppcoreguidelines-no-malloc, google-runtime-int ve cert-oop58-cpp'yi etkinleştirirgoogle-runtime-int, ancak devre dışı bırakırcppcoreguidelines-no-malloc. Clang-Tidy denetimlerinin listesi için Clang-Tidy belgelerine bakın.

"Etkinleştir" seçeneklerinden hiçbiri belirtilmezse, Visual Studio kullanılan Platform Araç Takımı ile eşleşen çözümleme aracını seçer.

CMake ayarları

Clang-Tidy ayarlarınızı düzenlemek için CMake ayarlarınızı açın ve CMake Proje Ayarları Düzenleyicisi'nde JSON Düzenle'yi seçin. CMake Ayarları JSON dosyasında Clang-Tidy belirtimlerinizi doldurmak için yukarıdaki anahtarları kullanabilirsiniz.

Örnek bir CMake ayarları uygulaması şöyle görünür:

{
  "configurations": [
  {
    "name": "x64-debug",
    "generator": "Ninja",
    ....
   "clangTidyChecks": "llvm-include-order, -modernize-use-override",
   "enableMicrosoftCodeAnalysis": true,
   "enableClangTidyCodeAnalysis": true
  }
  ]
}

CMake ön ayarları

Aynı tuşlar, nesne aracılığıyla vendor CMake ön ayarlarınızda kullanılabilir.

Örnek bir CMake önayar uygulaması şöyle görünür:

"configurePreset": [
{ "name": "base",
  ....
  "vendor": {
    "microsoft.com/VisualStudioSettings/CMake/1.0": {
      "clangTidyChecks": "llvm-include-order, -modernize-use-override",
      "enableMicrosoftCodeAnalysis": true,
      "enableClangTidyCodeAnalysis": true
      }
    }
}
]

Uyarı görüntüsü

Clang-Tidy çalıştırmaları Hata Listesi'nde görüntülenen uyarılarla sonuçlanır ve düzenleyicide kodun ilgili bölümlerinin altında dalgalı çizgiler oluşur. Clang-Tidy uyarılarını sıralamak ve düzenlemek için Hata Listesi penceresindeki Kategori sütununu kullanın. AraçlarKod Analizi Dalgalı Çizgilerini>düzenleyici içi uyarıları yapılandırabilirsiniz.

Clang-Tidy yapılandırması

Varsayılan olarak, Clang-Tidy etkinleştirildiğinde hiçbir denetim ayarlamaz. Komut satırı sürümündeki denetimlerin listesini görmek için bir geliştirici komut isteminde komutunu çalıştırın clang-tidy -list-checks . Clang-Tidy tarafından Visual Studio'da çalıştırılan denetimleri yapılandırabilirsiniz. Proje Özellik Sayfaları iletişim kutusunda Yapılandırma Özellikleri Clang-Tidy Checks özelliğinde çalıştırılacak denetimleri girin. İyi bir varsayılan kümedir clang-analyzer-*. Bu özellik değeri, aracın bağımsız değişkenine --checks sağlanır. Diğer tüm yapılandırmalar özel .clang-tidy dosyalara eklenebilir. Daha fazla bilgi için LLVM.org hakkındaki Clang-Tidy belgelerine bakın.

Clang-Tidy Araç Dizini

Clang-tidy yürütülebilir dosyanızda yerleşik özel kurallar olmasını ve Bunu Microsoft Visual Studio'da çalıştırmayı istiyorsanız, Visual Studio'nun çalıştırabileceği yürütülebilir dosyanın yolunu değiştirebilirsiniz. Proje Özellik Sayfaları iletişim kutusunda Yapılandırma Özellikleri Yolu el ile yazın veya Gözat'ı seçin ve Clang-Tidy Tool Directory özelliğinin altındaki yolu seçin. Yeni yürütülebilir dosya, değişiklik kaydedildikten ve uygulama yeniden derlendikten sonra kullanılır.

Clang-Tidy Ek Seçenekler

Clang-Tidy Ek Seçenekler özelliği, komut satırı seçeneğini kullanarak Clang-Tidy geçirilen ek derleyici bağımsız değişkenleri belirtmenize --extra-args olanak tanır. Bu argümanlar, Clang-Tidy'ın kodunuzu nasıl ayrıştıracağını denetlemek için makrolar tanımlamak, yollar eklemek veya dil standartlarını belirlemek gibi işlemlerde kullanılabilir. Bağımsız değişkenleri noktalı virgülle ayrılmış liste olarak girin. Örneğin: -std=c++20;-DMY_DEFINE=1;-Ipath\to\include.

Öne Eklenen Ek Seçenekler Clang-Tidy

Clang-Tidy Prepend Ek Seçenekleri Önüne Ekle özelliği, komut satırı seçeneği kullanılarak Clang-Tidy'e geçirilen derleyici bağımsız değişkenlerini belirtmenize --extra-args-before olanak tanır. Bu bağımsız değişkenler, Clang-Tidy kodunuzu ayrıştırdığında varsayılan derleyici bağımsız değişkenlerinden önce eklenir. Bağımsız değişkenleri noktalı virgülle ayrılmış liste olarak girin. Örneğin: -std=c++20;-DMY_DEFINE=1;.

En Fazla İşlem Sayısı

en fazla işlem sayısı özelliği, Clang-Tidy paralel çözümleme çalıştırmak için kullanabileceği işlem sayısını belirtmenize olanak tanır. Varsayılan olarak, Clang-Tidy seri olarak çalışır. Paralel yürütmeyi etkinleştirmek ve paralel işlemlerin sayısını belirtmek için bu özelliği ayarlayın. 0 Bunu, sisteminizdeki tüm kullanılabilir mantıksal işlemcileri kullanacak şekilde ayarlayın. İşlem sayısını artırmak, çok çekirdekli makinelerde analiz hızını artırabilir.

Ayrıca bkz.

MSBuild projeleri için Clang/LLVM desteği
CMake projeleri için Clang/LLVM desteği