问题描述
我有C / C ++应用程序,正在尝试运行cov-build并收到警告“没有文件发出”。当我们在Coverity上进行POC进行静态代码分析时,您能帮我吗?
C:\Users\Master\bamboo-agent-home\xml-data\build-dir\DEC-L11PROJ-JOB1>cov-build --dir cov-int IarBuild.exe MainApplication\EWARM\L11_P4_uC1.ewp -build *
Windows 10 Enterprise 64位(内部版本18362)上的Coverity Build Capture(64位)版本2019.03 内部版本号:2c0f9c8cf4 p-pacific1-push-35439.872
IAR Command Line Build Utility V8.4.8.6680
Copyright 2002-2020 IAR Systems AB.
错误总数:0 警告总数:0 [警告]没有发出文件。这可能是由于您的配置有问题 或因为您的build命令实际上没有编译任何文件。 请确保已配置了实际在编译中使用的编译器。 有关更多详细信息,请查看: C:/Users/Master/bamboo-agent-home/xml-data/build-dir/DEC-L11PROJ-JOB1/cov-int/build-log.txt
解决方法
首先,如果您参与了售前概念验证(POC),则应指派一名Coverity销售工程师来协助POC。该人员的角色包括提供与我将在下面提供的内容类似的说明和信息,以及回答诸如您这样的技术问题。某处可能出现了沟通不畅的情况。 与销售工程师联系,因为他们将比我更可靠,更完整地提供帮助。
现在,这是怎么回事? cov-build
的主要目的是监视编译器调用的构建过程,找到编译器后,请使用Coverity编译器(称为cov-emit
)编译相同的代码。但是,为了识别编译器,cov-build
需要知道其命令行名称,它是哪种编译器,其包含文件的存储位置等。这可以通过名为cov-configure
的帮助程序工具来完成。必须在cov-build
之前运行。如果尚未运行cov-configure
,则不会识别任何编译器调用,这对您来说似乎是正确的,如“未发出文件”所示。
Synopsys有一个名为CLI Integration Cheat sheet的页面,其中提供了与IAR一起使用的这些命令:
cov-configure --comptype iar:arm --compiler iccarm --template
cov-build --dir <intermediate directory> "c:\Program Files (x86)\IAR Systems\Embedded Workbench 6.5\common\bin\IarBuild.exe" sample_project.ewp -build Debug -log all
我个人不能担保这些命令(我没有IAR,也不再可以使用Coverity工具;我是前雇员),但需要这样做。同样,您指定的销售工程师应该能够提供帮助。
最后,对于新的Coverity用户,我建议使用cov-wizard
工具。 cov-wizard
是命令行工具的图形前端,并带有解释概念和过程的帮助文本以及执行它们的便捷界面。 cov-build
之后甚至还有几个步骤,cov-wizard
将引导您完成所有这些步骤。它的最后一个屏幕确切显示了要编写脚本时使用的命令行。