Gres

Делаем работу проще

Настройка и использование Cppcheck в Qt Creator

Ручное использование

Ручная проверка активного проекта выполняется при выборе пункт «Проверить активный проект» меню «Инструменты->Cppcheck» (рисунок слева)

Ручная проверка активного документа (независимо от его принадлежности проектам) выполняется при выборе пункт «Проверить активный документ» меню «Инструменты->Cppcheck» (рисунок слева)

Также возможна проверка любого элемента в обозревателе проектов. Для этого достаточно кликнуть правой кнопкой по интересующему элементу и в контекстном меню выбрать пункт «Проверить Cppcheck» (рисунок справа)

Настройки

Возможности по настройке плагина

Возможности по настройке плагина

Настройки плагина можно условно разделить на две группы: настройки запуска и настройки анализа.

Настройки запуска

Для функционирования плагина необходимо указать исполняемый файл программы-анализатора. Для этого необходимо нажать на кнопку «…» справа от пункта «Исполняемый файл» и в появившемся диалоге выбрать исполняемый файл Cppcheck. В случае успешного задания исполняемого файла в подсказке к полю ввода будет отображена версия выбранного анализатора.

Опции проведения автоматического анализа:

  • «Проверять проект после построения» — анализ активного проекта по завершении его построения (успешного или нет)
  • «Проверять документы после сохранения» — анализ изменившихся документов активного проекта после их сохранения (или отмены изменений)
  • «Проверять при смене активного проекта» — анализ проекта при его установке в качестве активного для текущей сессии
  • «Проверять добавленные файлы» — анализ файлов, добавленных в активный проект

Настройки анализа

  • «Проверять на неиспользуемые функции» — выполнять проверку на наличие в программе неиспользуемых функций.

Внимание! При выборе данной опции анализ будет производиться в однопоточном режиме, что может негативно сказаться на его скорости.

  • «Проверять на неточные ошибки» — при проверке выводить сообщения об ошибках даже в тех случаях, когда анализатор не уверен в их точности
  • «Пользовательские параметры» — добавить произвольные параметры запуска анализатора. Список возможных параметров можно просмотреть, нажав на кнопку «?» справа от опции
  • «Показывать вывод программы» — дублировать выходные сообщения анализатора в панель Qt Creator с названием «Основные сообщения»

Более подробную информацию о назначении плагина и ссылки на скачивание можно найти на этой странице.

20 комментариев

  1. I am using Qt5.9.1 (Qt Creator 4.3.1) and the latest cppcheck.
    C:\Users\Guy\AppData\Local\Temp\QtcCppcheck-4.3.0-win.zip

    The install went as expected, using the DLL path
    C:/Qt/Qt591/Tools/QtCreator/lib/qtcreator/plugins/QtcCppcheck4.dll

    QtcCppcheck is enabled in «About Plugins» in the Code Analyzer section.

    The various dropdowns are present, but when I right-click a project and «scan with cppcheck», nothing happens. Same if I try to run from Tools/cppcheck.

    I am fairly certain that my project should turn up some issues.
    What have I missed?

    • Hello. Try to enable «Show binary’s output» option and look at output in general messages pane. It will show cppcheck’s invocation parameters and might help to find out what is wrong. To be sure in proper work you can write something like int i[10]; i[10]=10; and check that file.
      Also, have you used absolute path to cppcheck’s binary? If not, check your system’s PATH.

      • Thanks for getting back!
        With «Show binary’s output» I get output in General Messages.
        But for any of my source files, I get response like

        Starting CppChecker with:C:/Qt/Qt591/Tools/QtCreator/lib/qtcreator/plugins/QtcCppcheck4.dll, -j 8 —enable=warning,style,performance,portability,information,missingInclude —template={file},{line},{severity},{id},{message} D:/xxx_ada/src/Qt5Dash/Dashboard/main.cpp -ID:/xxx_ada/src/Qt5Dash/Dashboard
        Cppcheck error occured
        Cppcheck finished

        I am using Windows 10, MCVC Compiler 14.0 (x86)

        Looks like there is something to fix!

  2. Никак не могу отучить проверять файлы *.ui — там «ошибок» сотни 🙂 В пользовательских параметрах -i*.ui не работает. А прописывать в большом проекте десятки «юайников» неправильно как-то да и лень. Может есть выход?

    • А версия плагина/ИДЕ какая? Начиная с 3.3.1 проверяются только заголовочные и исходники (с этими расширениями).

      • ну да, версия 3.2.1. А к своему QTC я 4.x.x не подключу, пробовал. Все-таки нельзя ли какими-то настройками старой версии ограничить список расширений?

        • а вот 3.3.1 встал! и вроде не проверяет чего не надо…

          • Плагин собирается под конкретную версию ИДЕ, так что если версии не совпадают, то всякое может случиться… Хотя возможно и повезет 🙂
            По мне, так лучший вариант — это обновить ИДЕ и плагин вместе с ней.
            Но если нельзя, то в cppcheck можно какие-то wildcard’ы использовать в —suppress или —suppressions-list. Возможно *.ui там сработает. Хотя сам не проверял.

  3. Hi,

    I am working with QtCreator plugin of CppCheck and want to use a project dependent suppression file which means that the location of that file depends on the current project. Therefore I cannot give a direct path to this file in the «Custom parameters:» line of the QtcCppcheck. It it possible to use already defined variables like %{sourceDir} or %{CurrentProject:Path} in this setting, e. g. «—suppressions-list=%{sourceDir}/cppcheck_suppressions.txt»?

    BR, Udo

  4. А есть ли возможность загрузить плагином готовый xml-файл с результатами проверки открытого проекта (полученный, например, с прошлых проверок или на CI-сервере)?

  5. У вас по умолчанию скачивается сборка старая.

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

    Также для удобства можно было бы прикрутить автоматический поиск CppCheck в стандартных местах при первом запуске. А также чтобы не требовался перезапуск всего Qt после выбора файла CppCheck.

    P.S.: А так, программулька очень полезна — спасибо вам за неё! 🙂

    • Qt Creator не надо перезапускать после изменения настроек. Они сразу подхватываются (по крайней мере должны 🙂 — проверю).
      Для поиска в стандартных путях достаточно просто указать «cppcheck» (под Linux). Но там свои нюансы есть, так что лучше конкретный путь указывать.

  7. Hello your plugin is really nice, could you make a linux binary for download please?
    I could also help you if you want and maybe we could try to make an official plugin.
    https://qt-project.org/wiki/Qt_Creator_Plug-in_Gallery

    • Hello.
      I’m not enough familiar with linux binary distribution. I hope it doesn’t mean that i must build binaries for every existing linux distribution 🙂 If it doesn’t then i’ll make it )
      About making it official (i.e. be distributed with qt creator).. I suppose it requires pretty much work to do. For now i was thinking to make more general external tools plugin or contribute to some already existing. Or even to extend qt creator’s native functionality to achieve same level of tools integration. I’ll decide what is better after reviewing what’s done and what must be done in each way.
      Any advices and opinions are welcome.
      And thanks for adding info to wiki 🙂

Добавить комментарий

Ваш e-mail не будет опубликован.