Я установил CPPCheck (v1.6.1) для большого проекта, содержащего несколько библиотек.
Когда я проверяю библиотеку, я получаю некоторые ошибки проверки, которые меня интересуют, и все хорошо. Однако на данный момент у меня просто есть список текстовых файлов всех * .cpp и * .h в этой библиотеке, который я передаю ‘—file-list = …’
Конечно, я получаю некоторые ошибки о пропущенных включениях, потому что эта библиотека (скажем, MyLibA) включает файлы из другой моей библиотеки (MyLibB).
Итак, я сейчас создаю текстовый файл, содержащий все пути включения из MyLibB, и передаю его в cppcheck через ‘—include-file = …’.
На этом этапе я получаю некоторые ошибки cpp относительно заголовков в MyLibB, что не является неожиданным, однако о всех ошибках, о которых сообщалось о MyLibA, больше не сообщается.
Это ошибка или я что-то не так делаю?
Если cppcheck сталкивается с #error, тогда он прерывает проверку. Таким образом, вы можете оказаться в ситуации, когда включение заголовков вызывает #error (если, например, вы неправильно настроили препроцессор -D, определяемый для cppcheck в командной строке).
Это означает, что файлы, которые были проверены ранее, больше не будут проверяться, потому что тесты были прерваны в заголовке, то есть до того, как были достигнуты ошибочные строки кода.
Других решений пока нет …