Linux平台下QtCreator集成代码静态分析工具clang-tidy和Clazy
Linux平臺下QtCreator集成代碼靜態分析工具clang-tidy和Clazy
原文連接:
https://blog.csdn.net/wsj18808050/article/details/79824619
內容:
QtCreator在前幾天發布了4.6.0的版本,增加了兩個非常棒的新功能,分別是Clang-Tidy和Clazy
官方的blog鏈接:
Qt Creator 4.6.0 released
這些功能能夠幫助我們更好的檢查C++代碼,甚至是一鍵糾正,具體的特性和好處不在累述,網上太多了,有興趣可以自行搜索。
所有的代碼檢查配置,因人而異,請根據自己需求,做調整。檢查項不是越多越好
代碼檢查會略微拖慢QtCreator的運行速度,但是我覺得這是值得的
安裝QtCreator4.6.0
目前4.6.0的QtCreator還沒有整合在任何一個Qt的安裝包里,所以需要自行下載,鏈接如下:
Index of /official_releases/qtcreator/4.6/4.6.0
開啟這些功能
打開ClangCodeModel
Windows & Linux:頂部菜單幫助 -> 關于插件 -> 勾選
macOS:頂部菜欄左側Qt Creator -> 關于插件 -> 勾選
這里寫圖片描述
設置Clang-Tidy
Windows & Linux:頂部菜單工具 -> 選項 -> C++ -> Code Model
macOS:頂部菜欄左側Qt Creator -> 偏好設置 -> C++ -> Code Model
默認的Configuration是不能修改的,所以點擊右邊的“Copy…”按鈕復制一個,然后進行自定義,我的配置如下,只開啟了4個:
這里寫圖片描述
現在clang-tidy實現有100+個check,請查看list列表。根據check不同種類(從check名字的前綴就能知道哪一類),分為如下幾大類:
boost 檢測boost庫API使用問題
cert 檢測CERT的代碼規范
cpp-core-guidelines 檢測是否違反cpp-core-guidelines
google 檢測是否違反google code style
llvm 檢測是否違反llvm code style
readability 檢測代碼上相關問題,但又不明確屬于任何代碼規范的
misc 其它一些零碎的check
mpi 檢測MPI API問題
modernize 把C++03代碼轉換成C++11代碼,使用C++11新特性
performance 檢測performance相關問題
設置Clazy
我調整到了Level 1,如下:
這里寫圖片描述
設置好后最好是重啟一下QtCreator
使用
我隨便找了一個以前寫的C++代碼,一下子就查出一堆問題,如下:
這里寫圖片描述
其中代碼右側有電燈泡icon的,是可以一鍵自動修改的,點擊電燈泡后可以看到這里有兩個建議:
這里寫圖片描述
一鍵修復后代碼如下:
這里寫圖片描述
總結
Clang-Tidy和Clazy都是很好的靜態代碼分析工具,一方面能夠規范代碼質量,讓開發者準守標準,使代碼更加嚴謹。另外一方面,很多問題能夠及時的通過代碼檢查暴露出來,在運行,甚至是編譯之前就提示開發者進行修復。小部分情況下還能夠在很多地方給出性能優化的建議。總之是一舉多得,開發必備良品。
檢查項目代碼
點擊 clang static analyzer
在項目debug頁面就能看到輸出
總結
以上是生活随笔為你收集整理的Linux平台下QtCreator集成代码静态分析工具clang-tidy和Clazy的全部內容,希望文章能夠幫你解決所遇到的問題。