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