Я сам искал решение, но смог найти только этот вопрос без ответа.Так что я пошел дальше и немного поработал над этим, и в итоге все заработало.
Проблема, похоже, в том, что более старые версии Cppcheck (я использую версию 1.82) пока не поддерживают печать столбца.Похоже, поддержка этого не была добавлена до Cppcheck 1.84 .Однако по умолчанию $gcc
средство сопоставления проблем ожидает, что номер столбца будет присутствовать .
Это пример сообщения Cppcheck 1.82, которое печатается при использовании шаблона gcc:
utilities/thread/condition.h:12: warning: The class 'Condition' has 'copy constructor' but lack of 'operator='.
Хотя ошибка, напечатанная в GCC 6.3, выглядит следующим образом:
dump_tool.c:40:36: fatal error: generated/autoconf.h: No such file or directory
Они в значительной степени идентичны, за исключением отсутствующего номера столбца.Простое удаление этого из шаблона решило проблему для меня.Проблемы совпадают и отображаются на вкладке проблем.
Кроме того, я настроил свой severity
на warning
, чтобы они также отображались на вкладке проблем, и я изменил fileLocation
к relative
, поскольку я работаю с относительными путями.
Это полное определение задачи, которое я использую для своего проекта:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
// ...
{
"label": "cppcheck",
"group": "build",
"type": "shell",
"command": "cppcheck --template=gcc --enable=warning --std=c++03 --force .",
"problemMatcher": {
"fileLocation": "relative",
"severity": "warning",
"pattern":{
"regexp": "^(.*):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"location": 2,
"severity": 3,
"message": 4
}
}
}
]
}