原創(chuàng)|使用教程|編輯:張莉|2025-09-12 11:11:57.847|閱讀 60 次
概述:在現(xiàn)代C/C++軟件開發(fā)中,尤其是大型、跨平臺的嵌入式或系統(tǒng)級項目中,高效且統(tǒng)一的構(gòu)建流程是保障開發(fā)效率與產(chǎn)品質(zhì)量的基石。CMake作為一個強大的構(gòu)建系統(tǒng)生成器,正是為了解決這一核心問題而設(shè)計的。它允許開發(fā)者使用一種簡單統(tǒng)一的腳本語言(CMakeLists.txt)來描述項目的構(gòu)建過程,然后根據(jù)目標平臺和開發(fā)者偏好,自動生成相應(yīng)的原生構(gòu)建文件。極大地簡化了跨平臺項目的配置與管理復(fù)雜度。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在現(xiàn)代C/C++軟件開發(fā)中,尤其是大型、跨平臺的嵌入式或系統(tǒng)級項目中,高效且統(tǒng)一的構(gòu)建流程是保障開發(fā)效率與產(chǎn)品質(zhì)量的基石。CMake作為一個強大的構(gòu)建系統(tǒng)生成器,正是為了解決這一核心問題而設(shè)計的。它允許開發(fā)者使用一種簡單統(tǒng)一的腳本語言(CMakeLists.txt)來描述項目的構(gòu)建過程,然后根據(jù)目標平臺和開發(fā)者偏好,自動生成相應(yīng)的原生構(gòu)建文件。極大地簡化了跨平臺項目的配置與管理復(fù)雜度。
今天我們將詳細介紹如何在Parasoft C/C++test這一專業(yè)代碼質(zhì)量保障平臺中,通過兩種方式提升項目的代碼質(zhì)量與測試效率,去實現(xiàn)高效靜態(tài)代碼分析與單元測試,幫助團隊在復(fù)雜的項目環(huán)境中精準掌控代碼質(zhì)量。
在CMake 項目中,Parasoft C/C++test 主要提供兩種方式:一是通過生成.json文件的形式,二是通過直接修改 CMakeLists.txt 文件的方式。接下來我們以cpptest安裝包下Timer項目為例,基于Linux操作系統(tǒng)來進行演示。
一、.json文件的形式
1.命令行下的靜態(tài)分析
復(fù)制Timer項目,進入Timer目錄
項目結(jié)構(gòu)如下
通過使用cd在Timer目錄內(nèi)創(chuàng)建一個構(gòu)建文件夾,使用CMake調(diào)用生成腳本。
我們可以看到已經(jīng)生成了compile_commands.json文件。
使用cpptestcli命令進行靜態(tài)分析,如下圖所示
執(zhí)行成功的效果圖
以上即為命令行的方式進行靜態(tài)分析的步驟。
我們通過CMake工具生成一個記錄了項目所有編譯設(shè)置的compile_commands.json文件,然后讓Parasoft C/C++test命令行工具讀取這個文件來自動化地進行靜態(tài)代碼分析。能精準、高效、批量地檢查出代碼中的潛在缺陷和合規(guī)性問題,并且這種命令行方式非常適合集成到自動化流程中,實現(xiàn)每次代碼提交后的自動檢查。
如何在項?中啟??成文件
?法1:
在CMakeLists.txt文件中將CMAKE_EXPORT_COMPILE_COMMANDS選項設(shè)置為ON。
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
?法2:
?成構(gòu)建腳本時,將其添加到cmake的命令?調(diào)?中。
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 <path_to_src>
在項目中啟用compile_commands.json文件的生成,是為了向靜態(tài)分析工具提供一份機器可讀的、精確的項目編譯數(shù)據(jù)庫。
該文件完整記錄了構(gòu)建系統(tǒng)(如CMake)編譯每個源文件時所使用的全部命令參數(shù)。
2.以界面的形式進行靜態(tài)分析和單元測試
對于生成的compile_commands.json文件進行導(dǎo)入項目,操作步驟如下:
以下為執(zhí)行內(nèi)建規(guī)則MISRA C 2023 (MISRA C 2012)執(zhí)行成功的控制臺效果圖
以下為執(zhí)行單元測試的效果圖
二、修改CMakeLists.txt文件的方式
在Timer項目中,我將CMakeLists.txt中的參數(shù)修改為如下形式,
創(chuàng)建build2文件夾,并執(zhí)行 cmake -DCPPTEST_PROJECT=ON ..
可以發(fā)現(xiàn)我的項目目錄下多了文件,這些文件正是我們導(dǎo)入項目所需要的
接下來進行導(dǎo)入項目的操作,點擊Import projects,再選擇現(xiàn)有項目到工作空間中。
點擊下一步,選擇我們項目(剛才生成的兩個配置文件的根目錄)
這樣項目就導(dǎo)入成功了。
導(dǎo)入compile_commands.json文件的核心目的,是為Parasoft C/C++test提供一份由構(gòu)建系統(tǒng)(如CMake)自動生成的、機器可讀的完整編譯數(shù)據(jù)庫,使其能夠精準復(fù)現(xiàn)項目真實的構(gòu)建環(huán)境。消除了因路徑、宏定義或編譯選項配置錯誤導(dǎo)致的誤報與漏報。
把 Parasoft C/C++test 用到 CMake 項目中,團隊基本上有兩種簡單又高效的選擇,既可以通過導(dǎo)入 compile_commands.json 快速開展靜態(tài)分析,也可以直接修改 CMakeLists.txt 文件,深度集成并生成 C/C++test 項目,輕松實現(xiàn)靜態(tài)分析和單元測試。不管哪種,都能讓團隊在復(fù)雜的項目環(huán)境中,更順暢地推進代碼質(zhì)量檢查。
通過以Timer項目為例的演示,可以看出這種集成方式能夠與現(xiàn)有 CMake 構(gòu)建系統(tǒng)無縫銜接,在不影響開發(fā)流程的同時,還能幫助團隊自動、持續(xù)地執(zhí)行代碼合規(guī)檢查與質(zhì)量評估。使團隊可以更有效地保障軟件產(chǎn)品的可靠性與安全性,為交付高標準成果提供了可靠的技術(shù)保障。
關(guān)于慧都
慧都是一家行業(yè)數(shù)字化解決方案公司,專注于軟件、石油與工業(yè)領(lǐng)域,以深入的業(yè)務(wù)理解和行業(yè)經(jīng)驗,幫助企業(yè)實現(xiàn)智能化轉(zhuǎn)型與持續(xù)競爭優(yōu)勢。在軟件工程領(lǐng)域,我們提供開發(fā)控件、研發(fā)管理、代碼開發(fā)、部署運維等軟件開發(fā)全鏈路所需的產(chǎn)品,提供正版授權(quán)采購、技術(shù)選型、個性化維保等服務(wù),幫助客戶實現(xiàn)技術(shù)合規(guī)、降本增效與風(fēng)險可控。
慧都科技作為Parasoft公司在中國區(qū)的官方授權(quán)合作伙伴,為國內(nèi)企業(yè)提供Parasoft C/C++test產(chǎn)品的正版授權(quán)、定制化部署與全生命周期技術(shù)支持與服務(wù)。我們致力于助力客戶精準貫徹功能安全標準、全面提升軟件開發(fā)效率、有效管控項目風(fēng)險,最終構(gòu)建符合國際標準的高質(zhì)量軟件體系。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn