Как решить проблему с идентификатором toomanyconfigs и MissingInclude: в Cppcheck

Я работаю в приложении MFC (около 2000 файлов) с Visual Studio 2008. Я запускаю Cppcheck для этого приложения, но обнаружил эти две проблемы.

Проблема toomanyconfigs: (Информация -- Проверка файла будет прервана, поскольку имеется слишком много конфигураций #ifdef. Проверка всех конфигураций #ifdef может быть принудительно выполнена с помощью параметра командной строки --force или из настроек графического интерфейса. Однако это может увеличить время проверки.)

Проблема missingInclude: (Информация -- Cppcheck не может найти все включаемые файлы. Cppcheck может проверить код без найденных включаемых файлов. Но результаты, вероятно, будут более точными, если все включаемые файлы найдено. Проверьте включаемые каталоги вашего проекта и добавьте их все в качестве включаемых каталогов для Cppcheck. Чтобы узнать, какие файлы Cppcheck не может найти, используйте --check-config.)

Мой список аргументов Cppcheck: cppcheck --quiet --verbose --check-config --force --enable=all --suppress=missingIncludeSystem --template=vs --std=c++11 $(ItemPath)

Как я могу решить эти проблемы?


person Suman Reddy    schedule 23.08.2016    source источник


Ответы (1)


Я разработчик Cppcheck.

Странно, что вы получаете слишком много конфигураций при использовании --force. Если вы можете создать файл, воспроизводящий проблему, сообщите об этом в нашем трекере. Вероятно, вы можете удалить весь код в файле и просто сохранить директивы препроцессора.

Вы можете указать пути включения с помощью -I.

Cppcheck-1.76 (следующая версия) сможет импортировать файлы решений Visual Studio 2010 и более поздних версий, чтобы вы автоматически получали includepaths. Может быть, это будет интересно проверить.

person Daniel Marjamäki    schedule 23.08.2016