CPPCheck возвращает противоречивые результаты

Я установил CPPCheck (v1.6.1) для большого проекта, содержащего несколько библиотек.

Когда я проверяю библиотеку, я получаю некоторые ошибки проверки, которые меня интересуют, и все хорошо. Однако на данный момент у меня просто есть список текстовых файлов всех * .cpp и * .h в этой библиотеке, который я передаю ‘—file-list = …’

Конечно, я получаю некоторые ошибки о пропущенных включениях, потому что эта библиотека (скажем, MyLibA) включает файлы из другой моей библиотеки (MyLibB).

Итак, я сейчас создаю текстовый файл, содержащий все пути включения из MyLibB, и передаю его в cppcheck через ‘—include-file = …’.

На этом этапе я получаю некоторые ошибки cpp относительно заголовков в MyLibB, что не является неожиданным, однако о всех ошибках, о которых сообщалось о MyLibA, больше не сообщается.

Это ошибка или я что-то не так делаю?

0

Решение

Если cppcheck сталкивается с #error, тогда он прерывает проверку. Таким образом, вы можете оказаться в ситуации, когда включение заголовков вызывает #error (если, например, вы неправильно настроили препроцессор -D, определяемый для cppcheck в командной строке).

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

1

Другие решения

Других решений пока нет …