原創|使用教程|編輯:鄭恭琳|2020-05-20 16:45:41.210|閱讀 882 次
概述:CMake是用于構建,測試和打包軟件的最受歡迎的工具之一。它大大簡化了大型項目的構建過程的管理。Parasoft C/C++test 2020.1版本引入了一系列增強功能,可以簡化與基于CMake的項目的集成。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
CMake是用于構建,測試和打包軟件的最受歡迎的工具之一。它大大簡化了大型項目的構建過程的管理。Parasoft C/C++test 2020.1版本引入了一系列增強功能,可以簡化與基于CMake的項目的集成。
在針對最大和知名汽車制造商之一的測試解決方案推出期間,我們開發了這些增強功能。
我們的挑戰是將靜態分析和單元測試功能引入基于自適應AUTOSAR平臺的大型復雜項目中。這些項目由多個靜態和動態庫以及許多可執行文件組成。
在此博客文章中,我將說明如何將Parasoft C/C++test靜態分析功能集成到基于CMake的項目中。請繼續關注我的下一篇文章,其中我將解釋如何對單元測試執行相同的操作。
要執行靜態代碼分析,諸如Parasoft C/C++test之類的工具需要有關項目構建的信息。通常,只需要編譯命令行來調用用于分析的文件。
使用Parasoft C/C++test,有多種方法可以集成到內部版本中。不同的構建系統可能需要不同的方法。對于基于CMake的項目,有很多可用的選項可以使靜態分析變得毫不費力,并且對過程的更改最少。它使與C/C++test的平滑集成成為可能。
CMake腳本可以輕松配置為生成編譯時信息作為JSON文件。通常,每個版本會獲得一個JSON文件。此JSON文件包含靜態分析器執行代碼掃描所需的全部內容。然后在生成生成腳本時創建帶有編譯命令行的JSON文件。C/C++test 2020.1版本了解此格式,可以將其直接用作執行靜態分析的輸入。
如何在基于CMake的項目上運行靜態分析
在基于CMake的項目上運行靜態分析的過程涉及以下步驟:
就是這樣!
讓我們來看一個在基于CMake的項目上運行靜態分析的示例。 如果尚未安裝,請:
按著這些次序
安裝后,轉到安裝目錄并進入示例子文件夾。復制Timer示例,然后進入Timer目錄。(這些步驟使用Linux作為開發平臺。)
您應該看到以下內容:
本示例準備使用位于主目錄中的“靜態”makefile或使用CMake生成的構建腳本進行構建。
通過使用cd在Timer目錄內創建一個構建文件夾。使用CMake調用生成腳本。
如果在生成后列出構建目錄的內容,我們將看到已生成compile_commands.json文件。
對于下一個示例項目,已經啟用了compile-info JSON文件的生成。
現在,我們準備使用生成的compile_commands.json文件運行靜態分析。一個很大的優點是我們可以將.json文件直接附加到Parasoft C/C++test標準產品的命令行界面中:
接下來,執行靜態分析并返回結果。
此集成方法可用于CI或在開發人員桌面本地使用。可能需要的唯一修改是啟用compile_command.json文件的生成。
如何在項目中啟用生成文件
如果您沒有在項目中啟用compile_command.json文件的生成,則可以通過以下兩種方法之一進行。
選項1
在CMakeLists.txt文件中將CMAKE_EXPORT_COMPILE_COMMANDS選項設置為ON。
例如
設置(CMAKE_EXPORT_COMPILE_COMMANDS ON)
選項2
生成構建腳本時,將其添加到cmake的命令行調用中。
例如
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1
這就是將靜態分析集成到基于CMake的項目中的全部。 接下來,我將介紹CMake的單元測試:結合使用Parasoft C/C++test和CMake進行單元測試。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn