заставить cppcheck пропустить определение PACKAGE

Я использую версию cppcheck 1.64 с графическим интерфейсом для статического анализа кода на языке C ++ — Builde-6. Для экспорта и импорта DLL, определение PACKAGE является необходимым:

/// A dialog exported from a BPL (a VCL-specific kind of DLL)
class PACKAGE MySharedDialog {

public:
// lots of methods to-be checked

private:
// lots of methods to-be checked

// lots of members

};

Cppcheck останавливается, когда сталкивается PACKAGE потому что он не знает, что это значит:

Код ‘class PACKAGE TAppInfoDialog {‘ не обрабатывается. Вы можете использовать -I или —include, чтобы добавить обработку этого кода.

…и это, конечно, означает, что весь класс не проверен. Если бы я мог сделать cppcheck просто игнорировать PACKAGE «ключевое слово», это будет делать именно так правильная вещь, но как это сделать? Включение его исходного определения через include path, похоже, не вариант: cppcheck тогда говорит мне много о заголовках каркаса VCL Я не могу поменять

Руководство не описывает вариант сделать это, Google не помогает, так что пока нет ответа.

В трекере проблем cppcheck я обнаружил аналогичную проблему # 4707 («абстрактное» и «закрытое» расширение Microsoft для класса) — cppcheck. Здесь ведущий разработчик предлагает создать файл и (предварительно?) Включить его в прогон cppcheck, но я использую версию с графическим интерфейсом, и нет возможности включить один файл. Поэтому я попытался добавить директоров в раздел include моих параметров проекта (файл XML), затем отредактировал соответствующую строку в спецификации файла, но это явно бессмыслица, потому что этот раздел содержит включить пути.

Что я могу попробовать дальше?

1

Решение

Решение состоит в том, чтобы добавить определение PACKAGE (пусто) в файл проекта:

<?xml version="1.0" encoding="UTF-8"?>
<project version="1">
<defines>
<define name="PACKAGE=" />
</defines>
</project>

Это решение я наконец нашел в этом небольшом, но ценном описании файла проекта в репозитории проекта cppcheck / gui / projectfile.txt на master · danmar / cppcheck · GitHub

1

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector