[ Linux ] 静态代码检测工具 —— Cppcheck工具


cppcheck工具介绍

什么是静态代码检查?
静态代码检查是指在不运行程序的条件下,进行程序分析的方法。有些程序分析需要在程序运行时才能进行,这种程序分析称为动态程序分析。

静态代码检查是一种补充检查,应在先编译通过的基础上,再作进一步检查,否则反而顾此失彼、浪费时间;动态可能会暴露并需要进一步定位的问题(如没有判空指针之类的),有可能可以通过静态检查先提前警告代码作者去提前更加关注某部分内容代码的编写,从而一定程度上节省自测定位时间。
静态程序分析的复杂程度依所使用的工具而异,简单的只考虑个别语句及声明的行为,复杂的可以分析程序的完整源代码。

Cppcheck:免费软件,开包即用。支持跨平台图形化界面。


Linux安装

方法一、apt-get安装
sudo apt-get install cppcheck
sudo apt-get install cppcheck-gui
cppcheck --version

cppcheck安装出现小状况
cindy@ubuntu:~$ sudo apt-get install cppcheck
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
解决方法:
sudo killall apt apt-get
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*
sudo dpkg --configure -a
sudo apt update

方法二、手动安装cppcheck源码包
官网下载cppcheck源码包(.tar.gz)

解压压缩包并进入文件
tar -zxvf cppcheck-2.10.tar.gz && cd cppcheck-2.10/

创建一个build的文件夹,进入build的文件夹
mkdir build && cd build

首先使用cmake …命令将CMakeLists.txt转换为make所需要的makefile
cmake …

然后,通过make开始编译,-j是代表jobs,表示使用多少个线程进行编译
make -j 8

查看是否生成cppcheck的可执行文件
root@ubuntu:/opt/software/cppcheck-2.10/build/bin$ ls -la
total 92040
drwxr-xr-x 5 root root 4096 May 19 15:52 .
drwxr-xr-x 11 root root 4096 May 19 15:49 …
drwxr-xr-x 4 root root 4096 May 19 15:50 addons
drwxr-xr-x 2 root root 4096 May 19 15:50 cfg
-rwxr-xr-x 1 root root 90078632 May 19 15:52 cppcheck
-rwxr-xr-x 1 root root 4141888 May 19 15:50 dmake
drwxr-xr-x 2 root root 4096 May 19 15:50 platforms

将可执行文件添加到环境变量中使用
vi ~/.bashrc

然后点击i键进行编辑状态,文件末尾输入
export RATH=/opt/software/cppcheck-2.10/build/bin:$PATH

按下Esc,输入:wq保存,然后执行source /etc/profile,可直接使用cppcheck进行相关操作
同步

source ~/.bashrc


linux使用示例

(1)检查当前路径下的代码,并输出到 txt 文件
cppcheck . --output-file=err.txt
(2)检查某个路径,不输出过程日志
cppcheck --quiet …/myproject/
(3)启用所有检查规则,检查某个文件
cppcheck --enable=all --inconclusive --std=posix test.cpp
(4)输出 xml 格式的日志文件
cppcheck src --enable=all --output-file=log.xml --xml


在makefile中添加cppcheck工具实例

STM32开发(二十一)添加代码静态检测详解 —— Cppcheck工具

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bazinga bingo

您的鼓励就是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值