使用Cppcheck进行静态检查的时候报了非常多库的错误和警告,但我实际我不需要这些,而是想具体关注自己的代码的问题。我在eide的介绍文档也没有找到关于静态检查的介绍
c/c++插件的静态检查完全无法使用,希望能说明一下该插件使用静态检查的正确方法。
并且报的错无法关闭
wjjsn
关闭按钮在这里
cppcheck 是一个公开的工具,这个插件只是集成了一下命令行,然后将错误信息接入到 vscode 的诊断窗口
cppcheck 通常是用来做多余的检查,值得怀疑的地方它都会标记出来。这可能跟你期望的不一样
如果你不需要多余的检查。正常情况下安装了 C/C++ 插件就可以了,至于你说的 C/C++ 插件也无法工作,请给出详细的描述说明
admin 我就是需要多余的检查。请问对于“如何结合eide使用cppcheck工具”有什么推荐的文章吗? 我的意思是c/c++插件的静态检查也无法使用,同样会报非常多错误。 这可能导致我不能发现可能潜在的问题或代码考虑不周到的地方
在你执行 run cppcheck 后,你的项目目录下会生成一个 conf.cppcheck 模板文件,
conf.cppcheck
插件启动命令行的时候,会把这个文件传递给 cppcheck 当作配置文件,因此如果你需要配置 cppcheck, 那么修改 conf.cppcheck 模板文件就行了
至于有哪些配置可用,这个得去查找 cppcheck 的官方文档
C/C++ 插件提供的静态检查是基于 clang 工具链的,因此不适合 gcc 的项目
根据你上面的描述,你应该是只是想检查特定的几个源文件,而跳过那些库文件,那么你可以将 conf.cppcheck 中的变量给修改掉,因为这个变量代表的是所有的 c/cpp 文件
内容你可以去 build/.cppcheck/tmp.cppcheck 文件中寻找,
build/.cppcheck/tmp.cppcheck
你可以将你想要的 xml字符串 复制出来,替换掉 conf.cppcheck 文件中的 ${source_list} 变量
${source_list}
感谢您的回复,按照您的指导 我尝试只检查一个源文件,但任然有不属于我的报错。程序是可以正常编译并运行的。 新的问题:插件好像不能很好的分析函数定义的位置。比如uint32_t HAL_GetTick(void);。由于我的工程是由cubemx生成的,并没有使用芯片eide带的芯片支持包(为了使用map.view还是下载了),但任然会跳转到芯片支持包中定义的函数。
uint32_t HAL_GetTick(void);
wjjsn 我尝试只检查一个源文件,但任然有不属于我的报错。程序是可以正常编译并运行的。
header 是自动检索出来的,避免不了除非你的程序不包含这个 header
插件好像不能很好的分析函数定义的位置。
c/c++ 插件只会在本工作区内搜索,因此你需要确保你的工作区包含整个源码。参考:https://discuss.em-ide.com/d/319
map.view 功能不需要安装 pack. 它只分析编译后的 map 文件,跟你使用何种库无关的