Написание определенной проверки Clang

Я пытаюсь реализовать свою маленькую пользовательскую проверку, например, пытаясь пройтись по этому уроку (который немного устарел).

У меня есть несколько проблем:

  • После того, как я клонировал репозитории, реализовал проверку и запустил cmake, цели сборки отличаются от учебника
  • После сборки и создания проекта я даже не знаю, что мне следует запускать, чтобы выполнить мою проверку в файле или в проекте.

Спасибо вперед за вашу помощь!

3 ответа

Решение

Я решил проблему цели сборки, которая заключалась в том, что цель check-clang-tools отсутствовала. В структуре файла cmake, на llvm/tools/clang/tools уровень, в CMakeLists.txt там была пропущенная строка, которую я должен добавить: add_clang_subdirectory(clang-tools-extra)


Решение проблемы исполнения:

  1. Убедитесь, что somedir/llvm/build/bin добавлен в ваш PATH
  2. Тогда вам нужно выполнить

llvm/tools/clang/tools/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py fileyouwanttocheck.cpp -checks='-*,your-check'

или же

llvm/tools/clang/tools/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py project_folder_you_want_to_check -checks='-*,your-check'

Что ж, вместо использования учебника, который, как вы признаете, устарел, как насчет использования учебника, который является частью официальной документации?

http://clang.llvm.org/extra/clang-tidy/

что я должен запустить, чтобы выполнить мою проверку в файле или в проекте.

Запустите исполняемый файл clang-tidy с правильными параметрами (для получения более подробной информации см. Вышеупомянутую документацию)

$ clang-tidy test.cpp -checks=-*,your-custom-check-name

-* отключает все проверки по умолчанию, так что это будет запускать только пользовательские проверки.

Я знаю, что этот вопрос старый, но я только что столкнулся с той же проблемой и хотел опубликовать свое исправление:

  1. Перейдите к своемуbuild_ninjaкаталог.
  2. Бегатьcmake -DLLVM_ENABLE_PROJECTS=clang;clang-tools-extra -GNinja ..\llvm(Это инструктируетcmakeпостроить обаclangи )
  3. Бегатьninja check-clang-tools(При этом выполняются все тесты дляclang-tools-extra)
Другие вопросы по тегам