0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

科普幾個好用的代碼檢查工具

工程師鄧生 ? 來源:程序喵大人 ? 作者:程序喵大人 ? 2022-09-05 09:05 ? 次閱讀

pYYBAGMVS_OASX8wAABSrSZlyi8576.jpg

CPP靜態(tài)代碼檢查工具有很多

常用的我都列在了上圖,比如cppcheck,

pYYBAGMVS9mAWWdKAAD6nBeFu7w990.jpg

使用方式如圖,它在Linux上安裝比較方便:

sudo apt install cppcheck。

在Windows上,需要下載cppcheck的安裝包:cppcheck.sourceforge.io/,也可以下載源碼,注意安裝成功后需要配置下它的環(huán)境變量。

也可以使用clang-tidy來做靜態(tài)代碼檢測, 不同于cppcheck使用正則表達式進行靜態(tài)代碼分析,clang-tidy是基于語法分析樹的靜態(tài)代碼檢查工具,雖然它的速度比正則表達式慢一些,但是它檢查的更準確、全面,而且不僅可以做靜態(tài)檢查,還可以做一些修復工作,自行添加一些自定義檢查規(guī)則。

clang-tidy的使用可以看這篇文章:

如何寫出優(yōu)雅的C++代碼

這里還重點推薦下cpplint:它可以檢測代碼是否符合Google的編碼規(guī)范,會把不符合規(guī)范的地方都指出來。

poYBAGMVS8WAUWQ1AADpKrO0hPU265.jpg

使用方式如圖,它的安裝也很簡單:

python3-m pip install cpplint。

很多項目都會把cpplint集成到pipeline里,不符合編碼規(guī)范的MR不允許被merge。

要具體了解可以看它們的文檔:

cppcheck的文檔

cpplint源碼

我在這個倉庫里也塞了寫關(guān)于代碼檢測方面的文章:

33f35fe6-2cb3-11ed-ba43-dac502259ad0.jpg



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11181

    瀏覽量

    208507
  • cpp
    cpp
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    2095

原文標題:有哪些好用的代碼檢查工具

文章出處:【微信號:程序喵大人,微信公眾號:程序喵大人】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    在嵌入式開發(fā)領(lǐng)域,有哪些好用的國產(chǎn)工具?

    在嵌入式開發(fā)領(lǐng)域,好用的國產(chǎn)工具不斷涌現(xiàn),為開發(fā)者提供了更多選擇。以下是一些備受推崇的國產(chǎn)工具: INTEWORK-DDC(Diagnostic Database Convertor): ? 開發(fā)商
    的頭像 發(fā)表于 10-23 09:21 ?61次閱讀

    代碼解析工具與自動化流程圖生成解決方案

    ? 摘要:CasePlayer2是一款強大的源代碼解析工具,專門設(shè)計用于分析ANSI C、C、C++以及匯編語言源代碼,并自動化地生成流程圖等文件。該工具集成了多種功能,包括MISRA
    的頭像 發(fā)表于 10-10 13:40 ?80次閱讀

    MCX母頭電路接觸檢查方法

    。  準備工具:準備好必要的工具,如萬用表、接觸電阻測試儀、顯微鏡(可選)以及適當?shù)那鍧?b class='flag-5'>工具(如棉簽、酒精等)。  目視檢查:首先通過目視檢查
    的頭像 發(fā)表于 09-25 09:13 ?135次閱讀
    MCX母頭電路接觸<b class='flag-5'>檢查</b>方法

    谷景科普如何檢測環(huán)形磁環(huán)電感好壞

    環(huán)形磁環(huán)電感的好壞是比較簡單的,我們主要觀察這幾個信息:外觀上是否有破損、裂紋。如果有明顯的物理傷害,那就意味著電感可能已經(jīng)損壞了。 2、封裝尺寸識別:使用卡尺等測量工具檢查封裝尺寸是否符合要求,尺寸有變差那就電
    的頭像 發(fā)表于 09-02 14:05 ?109次閱讀

    好用的串口工具

    好用的串口工具
    發(fā)表于 08-15 10:35 ?0次下載

    科普EEPROM 科普 EVASH Ultra EEPROM?科普存儲芯片

    科普EEPROM 科普 EVASH Ultra EEPROM?科普存儲芯片
    的頭像 發(fā)表于 06-25 17:14 ?436次閱讀

    電路板檢查故障的六大方法有哪些

    使用專業(yè)工具 1. 視覺檢查 視覺檢查檢查電路板故障的第一步。在進行視覺檢查時,您需要關(guān)注以下幾個
    的頭像 發(fā)表于 05-29 14:54 ?4621次閱讀

    想通過perf工具檢查2段不同代碼的內(nèi)存占用率,但一直沒找到,怎么辦?

    想通過perf工具檢查2段不同代碼的內(nèi)存占用率,但一直沒找到,怎么辦?
    發(fā)表于 05-17 13:33

    有什么好用的verilog HDL編輯工具可用?

    有什么好用的verilog HDL編輯工具可用?最好能集成實時的verilog HDL語法檢測、自定義模塊識別觸發(fā)等功能,最好能夠免費;
    發(fā)表于 04-28 11:00

    代碼檢查的方式有三種

    【摘要】?代碼檢查中,提到的編程規(guī)范,規(guī)則集,規(guī)則,規(guī)則用例(場景、誤報、檢出)分別代表什么意思呢? 在 SAST 靜態(tài)檢查領(lǐng)域,代碼檢查
    的頭像 發(fā)表于 02-25 10:08 ?775次閱讀
    <b class='flag-5'>代碼</b><b class='flag-5'>檢查</b>的方式有三種

    代碼審計怎么做?有哪些常用工具

    代碼審計是一種通過檢查代碼來發(fā)現(xiàn)潛在的安全漏洞的方法。 下面是常用的源代碼審計工具: 1、Fortify:通過內(nèi)置的五大主要分析引擎,對
    發(fā)表于 01-17 09:35

    Android APP合規(guī)檢查工具介紹

    如果想檢查多個內(nèi)置方法外的方法,只需要創(chuàng)建一個新的集合,往集合里放你想檢查的方法member,然后傳入MIITRuleChecker.check()內(nèi)即可。
    的頭像 發(fā)表于 01-15 11:35 ?1056次閱讀
    Android APP合規(guī)<b class='flag-5'>檢查</b><b class='flag-5'>工具</b>介紹

    Shell腳本檢查工具ShellCheck介紹

    ShellCheck是一個用于bash/sh shell腳本的靜態(tài)分析工具,可以輔助檢查腳本語法錯誤,給出建議增強腳本健壯性。
    的頭像 發(fā)表于 12-27 13:43 ?1838次閱讀
    Shell腳本<b class='flag-5'>檢查</b><b class='flag-5'>工具</b>ShellCheck介紹

    自己編寫函數(shù)示例代碼很難嗎?分享幾個示例!

    Arduino網(wǎng)站 ,而且他們的示例擴展的效果并不好。本帖將分成以下幾個部分:以不包含任何函數(shù)的起始代碼為例、使用一個函數(shù)轉(zhuǎn)換相同的程序、展示可以利用函數(shù)做些什么的擴展示例、與沒有函數(shù)的代碼版本進行比較,表明更少的
    的頭像 發(fā)表于 11-16 16:05 ?446次閱讀
    自己編寫函數(shù)示例<b class='flag-5'>代碼</b>很難嗎?分享<b class='flag-5'>幾個</b>示例!

    什么是電氣規(guī)則的檢查

    ,絲印是否重疊,絲印之間的間距,走線之間的最小間隔,走線與焊盤之間的間隔等等。 對于這些,都是電氣規(guī)則檢查需要檢查的內(nèi)容,看一下這些東西是否都能夠滿足要求。 電氣規(guī)則檢查這個工具在哪里
    的頭像 發(fā)表于 11-06 15:17 ?1976次閱讀
    什么是電氣規(guī)則的<b class='flag-5'>檢查</b>