cppcheck-vs-addin - Как удалить папку из проверки

Я пытаюсь настроить cppcheck-vs-addin для автоматической проверки моего кода при сохранении. . Все идет нормально. Однако, когда я запускаю его для всего своего проекта, я хочу исключить несколько папок (содержащих источники и заголовки, которые я не могу контролировать).

Файлы, которые я пытаюсь исключить, находятся в папке libs\something\files.* Дерево папок выглядит примерно так

src 
  | Folder A
  | Folder B
libs
  | LibsA
  | LibsB

Что я пробовал до сих пор:

-В настройках добавил -ilibs в поле дополнительных аргументов

-В Редактировать подавление решения / Исключено включить путь: .*\\libs\\.* (это должно работать для файла заголовков, но у меня также есть исходные файлы)

- В Редактировать подавление решения / Файлы, исключенные из проверки .*\\libs\\.* (эта опция работает только с именем файла, а не с содержащей его папкой, поэтому в этом случае она ничего не делает)

Дополнительный вопрос, можно ли просмотреть запущенную команду cppcheck.exe? Это может помочь понять, что я делаю.


person David Levy    schedule 19.04.2018    source источник


Ответы (1)


Если вы установили CPPCheck (и он находится в расположении по умолчанию), добавьте путь C:\Program Files (x86)\Cppcheck в переменную среды. Теперь обновите события предварительной сборки из свойства вашего проекта и вызовите cppcheck прямо оттуда. Проверьте это изображение, как вы можете указать события PreBuild.

Страница свойств проекта Visual Studio C++ для настройки события перед сборкой

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

cppcheck --project=$(MSBuildProjectFullPath) -i "$(ProjectDir)foo\src\" --output-file="$(OutDir)$(TargetName).xml"

--project=$(MSBuildProjectFullPath) выбирает файл вашего текущего проекта (.vcproj или .vcxproj),

-i Указывает каталог, который вы хотите исключить из сканирования.

--output-file="$(OutDir)$(TargetName).xml" создает выходной файл в выходном каталоге проекта с результатами анализа.

Чтобы просмотреть подробный список аргументов, введите cppcheck --help в командной строке.

person A.B.    schedule 08.05.2018
comment
Этот обходной путь должен работать, вы в основном вызываете cppcheck изначально, но вы полностью обходите надстройку. Таким образом, у нас нет отображения ошибок внутри IDE. - person David Levy; 09.05.2018