Как интегрировать PC-lint с Visual C ++ 2008

У моей компании есть исполняемый файл lint-nt.exe для PC-lint.

Я пытаюсь использовать это для интеграции PC-lint с MS Visual Studio 2008 для анализа источников .c / .cpp. Но мне не удалось заставить это работать.

Я читаю:

http://www.gimpel.com/html/pub80/env-vc9.lnt

и подобная информация на одном или двух других сайтах, но безуспешно.

Я выполнил указанные шаги, чтобы добавить внешний инструмент в Visual C ++ 8, но когда я нажимаю на только что добавленный инструмент, на мгновение открывается окно pc-lint, которое немедленно закрывается, и я сомневаюсь, что он проводил какой-либо анализ. Так что это не работает для меня.

Затем я попытался запустить lint-nt.exe в командной строке Windows как

lint-nt.exe +fce +fcp +cpp(cpp,cxx,cc) -i"C:\Program Files\Microsoft Visual Studio 9.0\VC\include" +libdir +libh myfile.cpp

Он действительно выполнил анализ, но он проанализировал множество файлов заголовков из папки INCLUDE Visual C ++ (limits.h sal.h iostream и т. Д.), Потому что в моем исходном файле было #include <iostream> и так далее.

РЕДАКТИРОВАТЬ: я вижу, что pc-lint имеет параметры +/-libdir, +/-libh и другие параметры, которые могут помочь, но я просто не мог использовать их правильно, чтобы избежать анализа заголовков компилятора.

Два вопроса:

  1. Как мне запретить pc-lint анализировать файлы заголовков компилятора и анализировать только файлы исходного кода?
  2. Как интегрировать pc-lint в Visual C ++ 2008 Express edition, которую я использую?

person goldenmean    schedule 10.12.2012    source источник


Ответы (2)


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

На ваш вопрос:

  1. Чтобы быстро приступить к работе, удалите параметры +fce, +fcp, +libdir и +libh из командной строки. Я полагаю, вам просто не хватает опции -wlib(1), чтобы не говорить о множестве предупреждений, которые выдают библиотеки MS. Не используйте -wlib(0): вы отключите все параметры для заголовков библиотек, но неправильные конфигурации, возникающие в этих заголовках библиотек, могут вызвать массу предупреждений в вашем коде, когда вы не сможете найти виновника, скрытого в этих заголовках компилятора.
  2. Ссылка user34341 - неплохое начало, хотя у меня есть некоторые проблемы с точным отслеживанием. А env-vc9.lnt с веб-сайта Gimpel предполагает, что вы установили PC-lint с их установщиком. Читая между строк вашего вопроса, я думаю, что нет. Детали создания такой установки, включая создание файла параметров PC-lint std.lnt, уводят нас слишком далеко для этого ответа, но я написал PDF-документ "Как использовать PC Lint", объясняя все это в болезненных подробностях. Если вы объедините ссылку от user34341, файл параметров из Gimpel и мой документ, все должно быть в порядке.

Более того: env-vc9.lnt содержит только возможность использования среды VC9 (также известной как Visual Studio); для поддержки компилятора C / C ++ вам понадобится соответствующий файл параметров компиляции http://www.gimpel.com/html/pub80/co-msc90.lnt и связанный с ним (только для Lint) файл заголовка http://www.gimpel.com/html/pub80/co-msc90.h.

Поэтому, прежде чем начинать интеграцию с VS2008, загрузите их и попробуйте эту командную строку:

lint-nt.exe +cpp(cpp,cxx,cc) co-msc90.lnt myfile.cpp

и посмотрите, будут ли результаты лучше, чем раньше. -ioption был в порядке, но если у вас есть переменные среды (например,% INCLUDE%), настроенные правильно для Visual Studio, в этом нет необходимости.

И еще один совет: если вы еще этого не сделали, посмотрите версию PC-lint, которая у вас есть, и обязательно обновите ее до последнего уровня патча: 7.50ad, 8.00x, 9.00i (текущая версия); ссылки под номерами версий ведут на соответствующую страницу веб-сайта. Это избавит вас от многих проблем. Я знаю, что получение последней версии не всегда возможно, даже если это очень предпочтительно.

person Johan Bezem    schedule 12.12.2012
comment
Хорошо пробовал -wlib (1) co-msc90.lnt myfile.cpp, теперь я получаю ошибки: PC-lint для C / C ++ (NT) Ver. 8.00p, Copyright Gimpel Software 1985-2004 co-msc90.lnt 14 Ошибка 72: неверный параметр '+ compiler (search_actively_including_stac k)' co-msc90.lnt (55): Ошибка 72: неверный параметр '+ fwm' co-msc90. lnt (350): Ошибка 72: неверный параметр '+ rw (* type_traits)' --- Модуль: CTroposManager.cpp _ CTroposManager.cpp (): Ошибка 72: неверный параметр '+ rw (* type_traits)' _ #include ‹ typeinfo ›co-msc90.h (18): Ошибка 322: Невозможно открыть включаемый файл 'typeinfo' - person goldenmean; 18.12.2012
comment
Хорошо, если вы используете PC Lint версии 8.00p (2004), я бы сначала предложил исправить вашу версию до версии 8.00x с 2008 года (это просто, на четыре года позже и бесплатно!), А также использовать совместную версию. msc90.lnt на странице последних патчей 8.00, которую я указал в своем сообщении. Предупреждения, которые вы получаете, связаны с функциями, представленными в версиях после 8.00p (2004!), Не поддерживаемыми 8.00p. - person Johan Bezem; 19.12.2012

Установка PC-Lint и его использование в Visual Studio 2005. См. Среднюю статью.

person user34341    schedule 10.12.2012