You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用lcov生成代码覆盖率时遇gcov报错:缺少'-x'参数

解决lcov生成覆盖率报告时的gcov报错问题

核心问题分析

报错gcov: error: missing argument to '-x'是因为lcov调用gcov时传递了不完整的-x参数,大概率是lcov版本与gcc 10+的gcov不兼容导致的,同时出现的子例程重定义警告也是旧版lcov的常见问题。

具体解决方法

1. 升级lcov到兼容版本

旧版lcov(如1.14及更早)对gcc 10+的gcov支持存在缺陷,升级到最新版本即可解决:

  • 对于Fedora系统(你的环境是fc36),执行:
sudo dnf update lcov
  • 升级完成后重新执行你的lcov命令:
lcov --capture --directory . --output-file main2.info

2. 明确指定gcov工具版本

如果暂时无法升级lcov,可以在调用lcov时强制指定对应版本的gcov工具,避免版本不匹配:

lcov --capture --directory . --output-file main2.info --gcov-tool gcov-10

3. 临时修复geninfo脚本(不推荐)

如果上述方法都不可行,可手动修改/usr/bin/geninfo脚本:

  • 打开该脚本,搜索包含-x的代码行,找到传递-x参数但未提供对应值的位置,要么补全参数,要么移除多余的-x参数。
  • 注意:修改系统脚本可能引发其他问题,仅作为临时应急方案。

验证

执行完修复操作后,重新运行lcov命令,若不再出现gcov: error: missing argument to '-x',且能成功生成main2.info文件,说明问题解决。

内容的提问来源于stack exchange,提问作者somiha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 18:15:16