Megosztás a következőn keresztül:


Clang-Tidy használata a Visual Studióban

A Clang-Tidy támogatásához a Visual Studio 2019 16.4-es vagy újabb verziója szükséges. A jelen verzió dokumentációjának megtekintéséhez állítsa a cikk Visual Studio Verzióválasztó vezérlőelemét Visual Studio 2019-es vagy újabb verzióra. A lap tartalomjegyzékének tetején található.

A Code Analysis natív módon támogatja a Clang-Tidy-t az MSBuild és a CMake projektekhez, függetlenül attól, hogy Clang- vagy MSVC-eszközkészleteket használ. Clang-Tidy ellenőrzések a háttérkód-elemzés részeként futtathatók. Ezek szerkesztőn belüli figyelmeztetésként (aláhúzások) jelennek meg, és a hibalistában jelennek meg.

Clang-Tidy támogatás a Visual Studio 2019 16.4-es verziójától érhető el. Ez automatikusan megjelenik, ha C++ számítási feladatot választ a Visual Studio Installerben.

Clang-Tidy az alapértelmezett elemzőeszköz az LLVM/clang-cl eszközkészlet használatakor, amely az MSBuild és a CMake szolgáltatásban is elérhető. Konfigurálhatja, ha MSVC-eszközkészletet használ a szabványos kódelemzési felület mellett vagy helyett. Ha a clang-cl eszközkészletet használja, a Microsoft Code Analysis nem érhető el.

Clang-Tidy sikeres fordítás után fut. Előfordulhat, hogy meg kell oldania a forráskód hibáit Clang-Tidy eredmények lekéréséhez.

MSBuild

A Clang-Tidy úgy konfigurálhatja, hogy a Kódelemzés és a Build részeként is fusson a Projekt tulajdonságai ablak Kódelemzés>általános lapján. Az eszköz konfigurálására vonatkozó beállítások a Clang-Tidy almenüben találhatók.

További információ : A C/C++ projektek kódelemzési tulajdonságainak beállítása.

CMake

A CMake-projektekben konfigurálhatja a Clang-Tidy ellenőrzéseket a CMakeSettings.json vagy a CMakePresets.json elemen belül.

Clang-Tidy a következő kulcsokat ismeri fel:

  • enableMicrosoftCodeAnalysis: Engedélyezi a Microsoft Code Analysis használatát
  • enableClangTidyCodeAnalysis: Lehetővé teszi Clang-Tidy elemzést
  • clangTidyChecks: Clang-Tidy konfiguráció. Az engedélyezéshez vagy letiltásához vesszővel tagolt ellenőrzések listája. A bevezető - letiltja az ellenőrzést. Például a cert-oop58-cpp, -cppcoreguidelines-no-malloc, google-runtime-int engedélyezi a cert-oop58-cpp és google-runtime-int használatát, de letiltja a cppcoreguidelines-no-malloc. Az Clang-Tidy-ellenőrzések listáját a Clang-Tidy dokumentációjában találja.

Ha egyik "engedélyezés" beállítás sincs megadva, a Visual Studio a használt platformeszközkészletnek megfelelő elemzőeszközt választja ki.

CMake-beállítások

A Clang-Tidy beállításainak szerkesztéséhez nyissa meg a CMake beállításait, és válassza a JSON szerkesztése lehetőséget a CMake Projektbeállítások szerkesztőjében. A fenti kulcsokkal kitöltheti Clang-Tidy specifikációit a CMake Settings JSON fájlban.

Egy példa CMake-beállítások implementációja így néz ki:

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

CMake-beállítások

Ugyanezek a kulcsok használhatók a CMake-készletekben az vendor objektumon keresztül.

A CMake előre beállított implementációja a következőképpen néz ki:

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

Figyelmeztetés megjelenítése

Clang-Tidy futtatások figyelmeztetéseket eredményeznek a hibalistában, és a szerkesztőben a megfelelő kódszakaszok alatt hullámos vonalakként jelennek meg. A Clang-Tidy figyelmeztetések rendezéséhez és rendszerezéséhez használja a Kategória oszlopot a Hiba lista ablakban. A szerkesztőben megjelenő figyelmeztetéseket úgy konfigurálhatja, hogy a Eszközök> menüben a Kódelemzési jelek letiltása beállítást váltja.

Clang-Tidy konfigurációja

Alapértelmezés szerint a Clang-Tidy nem állít be ellenőrzést, ha engedélyezve van. A parancssori verzióban található ellenőrzések listájának megtekintéséhez futtassa clang-tidy -list-checks a fejlesztői parancssort. Konfigurálhatja az Clang-Tidy futtatott ellenőrzéseket a Visual Studióban. A projekt tulajdonságlapjai párbeszédpanelen nyissa meg a Configuration Properties>Code Analysis>Clang-Tidy lapot. Adja meg a Clang-Tidy Ellenőrzések tulajdonságban futtatandó ellenőrzéseket. Egy jó alapértelmezett készlet a clang-analyzer-*. Ezt a tulajdonságértéket az --checks eszköz argumentuma adja meg. A további konfigurációk az egyéni .clang-tidy fájlokba is belefoglalhatók. További információt a LLVM.orgClang-Tidy dokumentációjában talál.

Clang-Tidy eszközkönyvtár

Ha egyéni szabályokat szeretne beépíteni a clang-tidy futtatható állományába, és azt futtatni kívánja a Microsoft Visual Studióban, módosíthatja a Visual Studio által használt végrehajtható útvonalat. A projekt tulajdonságlapjai párbeszédpanelen nyissa meg a Configuration Properties>Code Analysis>Clang-Tidy lapot. Írja be manuálisan az elérési utat, vagy tallózással jelölje ki az elérési utat az Clang-Tidy Eszközkönyvtár tulajdonság alatt. Az új végrehajtható fájl a módosítás mentése után lesz használatban, és az alkalmazás újrafordítása megtörténik.

Clang-Tidy további beállítások

A Clang-Tidy További beállítások tulajdonság lehetővé teszi további fordítóargumentumok megadását Clang-Tidy parancssori --extra-args beállítással. Ezekkel az argumentumokkal szabályozható, hogy Clang-Tidy hogyan elemzi a kódot, például makrók definiálásával, elérési utakkal vagy nyelvi szabványokkal. Adja meg az argumentumokat pontosvesszővel elválasztott listaként. Például: -std=c++20;-DMY_DEFINE=1;-Ipath\to\include.

Clang-Tidy Előre hozzáadott további opciók

Az Clang-Tidy Kiegészítő opciók előfűzése tulajdonság lehetővé teszi, hogy megadjuk a parancssorban --extra-args-before Clang-Tidy-nek átadott fordítóargumentumokat. Ezek az argumentumok az alapértelmezett fordítóargumentumok elé kerülnek, amikor Clang-Tidy elemzi a kódot. Adja meg az argumentumokat pontosvesszővel elválasztott listaként. Például: -std=c++20;-DMY_DEFINE=1;.

Folyamatok maximális száma

A Folyamatok maximális száma tulajdonság lehetővé teszi annak megadását, hogy hány folyamat Clang-Tidy használható az elemzés párhuzamos futtatásához. Alapértelmezés szerint a Clang-Tidy sorosan fut. Állítsa be ezt a tulajdonságot a párhuzamos végrehajtás engedélyezéséhez, és adja meg a párhuzamos folyamatok számát. Állítsa be úgy, hogy 0 a rendszeren elérhető összes logikai processzort használja. A folyamatok számának növelése javíthatja a többmagos gépek elemzési sebességét.

Lásd még

Clang/LLVM-támogatás MSBuild-projektekhez
Clang/LLVM-támogatás CMake-projektekhez