本地虚拟机使用Coverity分析HelloWorld时cov-build找不到Makefile
解决Coverity构建命令找不到Makefile的问题
我来帮你定位并解决这个问题,核心是你对cov-build的参数理解有误,另外你的Makefile还有个小瑕疵,下面一步步说明:
1. 错误根源:cov-build的--dir参数用错了
你执行的命令:
./cov-build --dir "usr/halloworld/" make
这里的--dir参数是用来指定Coverity分析结果的存储目录,而不是你的项目目录。你把项目目录填到这里后,cov-build会尝试在usr/halloworld/这个目录下执行make,但这个目录里并没有你的Makefile,所以才会报错make: *** No targets specified and no makefile found. Stop.
2. 正确的执行步骤
首先切换到你的项目根目录(也就是包含test.c和Makefile的halloworld目录):
cd /path/to/your/halloworld
然后依次执行以下命令:
- 配置Coverity适配gcc(如果之前没成功配置过的话):
./cov-configure --gcc - 执行Coverity构建,这里指定一个目录(比如
cov-int,这是Coverity常用的结果目录名)来存储分析数据:./cov-build --dir cov-int make
这样make会在当前项目目录下找到你的Makefile,正常完成构建和Coverity分析。
3. 修复Makefile的clean规则
你的Makefile里的clean规则有个危险的错误:
clean: rm -rf test.o test.c
这里的test.c是你的源代码文件,执行make clean会直接删掉它,导致下次无法构建。应该只删除编译生成的文件:
clean: rm -rf test.o test.exe
验证
执行完上述步骤后,你可以检查cov-int目录是否生成,里面会包含Coverity的分析数据,说明构建成功了。
内容的提问来源于stack exchange,提问作者Jardo421
相关产品推荐
相关产品推荐

