clang-tidy使用总结

clang-tidy使用总结

  • clang-tidy静态扫描c++代码
    • 一:如何在centos7上安装clang-tidy
    • 二:如何使用clang-tidy

clang-tidy静态扫描c++代码

这篇文章主要讲了以下几点:
1,如何在centos7上安装clang-tidy
2,如何使用clang-tidy
3,如何将clang-tidy结合blade对整个项目进行静态扫描

一:如何在centos7上安装clang-tidy

(插入语:在Ubuntu上安装clang-tidy只需要一条命令:sudo apt-get install clang-tidy-5.0)
在centos上安装clang-tidy做了个总结,主要有以下几条命令:
(1)sudo yum install centos-release-scl
(2)sudo yum install llvm-toolset-7
(3)sudo yum install llvm-toolset-7-clang-analyzer llvm-toolset-7-clang-tools-extra
(4)scl enable llvm-toolset-7 ‘clang -v’
(5)scl enable llvm-toolset-7 ‘lldb -v’
(6)scl enable llvm-toolset-7 bash
详细的资料可以参考下面两个网址:
https://developers.redhat.com/blog/2018/07/07/yum-install-gcc7-clang/
https://developers.redhat.com/blog/2017/11/01/getting-started-llvm-toolset/

二:如何使用clang-tidy

安装好clang-tidy以后,可以用是 clang-tidy -list-checks -checks=’‘来看看clang-tidy可以静态分析哪些方面的内容。
clang-tidy具体可以检测以下几个部分:
(1)boost 检测boost库API使用问题
(2)cert 检测CERT的代码规范
(3)cpp-core-guidelines 检测是否违反cpp-core-guidelines
(4)google 检测是否违反google code style
(5)llvm 检测是否违反llvm code style
(6)readability 检测代码上相关问题,但又不明确属于任何代码规范的
(7)misc 其它一些零碎的check
(8)mpi 检测MPI API问题
(9)modernize 把C++03代码转换成C++11代码,使用C++11新特性
(10)performance 检测performance相关问题
可以直接对上面所有的部分进行检查:如下面的命令:
clang-tidy -checks=’
’ test.cpp – (对test.cpp进行静态扫描,后面的--表示这个文件不在compilation database里面,可以直接单独编译)
也可以单独对上面的某一个部分的全部做扫描:clang-tidy -checks='performance-’ test.cpp – (对test.cpp做性能扫描)
同样,也可以对某个部分中的某一个方面做扫描:clang-tidy -checks=‘performance-inefficient-vector-operation’ test.cpp – (对test.cpp做vector性能扫描)
另外,可以直接加’-fix’扫描出来的错误进行修改:clang-tidy -checks="-
,misc-unused-using-decls" -fix test.cpp – (找出test.cc中所有没有用到的using declarations并自动fix)
上面是扫描时常用到的一些情况。其他更详细的知识可以参考下面的网址:
https://codeyarns.com/2019/01/28/how-to-use-clang-tidy/
https://segmentfault.com/a/1190000007015981
https://www.kdab.com/clang-tidy-part-1-modernize-source-code-using-c11c14/
https://www.kdab.com/clang-tidy-part-2-integrate-qmake-and-other-build-systems-using-bear/

你可能感兴趣的:(后台开发,c++)