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