Я использую PC-Lint на ПК с Windows (платформа).
Я выполняю свой код, но получаю это сообщение об ошибке / предупреждении, и после некоторого процента выполнения мой код дает сбой. Все ошибки связаны только с линтированием.
Предупреждения:
C: \ Program Files \ Texas Instruments \ ndk_x_xx_xx_xxx \ packages \ ti \ ndk \ inc \ usertype.h (118): Примечание 960: Нарушает MISRA 2004, требуется правило 10.6, для целочисленных литералов без знака требуется суффикс ‘U’
C: \ Program Files \ Texas Instruments \ ndk_x_xx_xx_xxx \ packages \ ti \ ndk \ inc \ usertype.h (145): Примечание 960: Нарушение MISRA 2004 Обязательное правило 10.6, для целочисленных литералов без знака требуется суффикс ‘U’
C: \ Program Files \ Texas Instruments \ ndk_x_xx_xx_xxx \ packages \ ti \ ndk \ inc \ socket.h (53): Примечание 960: Нарушает MISRA 2004, требуется правило 10.6, для целочисленных литералов без знака требуется суффикс ‘U’
C: \ Program Files \ Texas Instruments \ ndk_x_xx_xx_xxx \ packages \ ti \ ndk \ inc \ socket.h (159): Примечание 970: Использование модификатора или типа int вне определения типа [Правило 6.3 MISRA 2004] … …
Так как я не могу изменить этот пакет ndk. Поэтому я хочу исключить эти файлы из моего процесса линтинга … Я получил несколько старых ответов из переполнения стека, но они связаны с исходными файлами, а не с заголовочными файлами.
У меня проблема с заголовочными файлами, такими как usertype.h, socket.h и т. Д. И т. Д.
я попытался поместить опцию -efile (960, usertype.h) в мой файл lint.lnt, но проблема все еще была.
Можете ли вы сказать мне решение для этого ???
-Ashwin
Если вы получаете предупреждения с номерами 900 и выше, вы работаете на уровне предупреждения 4, который слишком высок для нормальной работы. Я бы начал с уровня предупреждения 1 (только синтаксис) и убедился, что все работает правильно. Затем вы можете увеличить до 2 или 3 и выборочно включить некоторые отдельные предупреждения в диапазоне 900+ и / или 1900+.
Чтобы пропустить определенные части в процессе проверки, просто удалите исходные файлы c / c ++ из конфигурации или командной строки. Но не забудьте сохранить каталоги как включающие каталоги, так как другие файлы должны будут включать эти заголовки интерфейса.
Опция -efile
не предназначен для подавления предупреждений в файл, а скорее для подавления предупреждений около файл. Подробности смотрите в описании опции в руководстве.
Способ ограничения предупреждений в исходном коде, за который вы не несете ответственности, заключается в объявлении этого исходного кода «библиотеками». Вся глава 6 руководства PC-Lint посвящена этой теме. Вы можете начать с -wlib(1)
использовать уровень предупреждения 1 (только синтаксис) для библиотечных файлов, а затем определить, что вы хотите считать библиотечными файлами с +libclass
, +-libdir
, а также +-libh
опции. И если вы хотите увидеть, считается ли определенный включаемый файл заголовком «библиотеки», запустите PC-Lint с опцией -vf
,
Других решений пока нет …