【问题标题】:cant create coverage informations with lcov WARNING: no .gcda files found in ./coverage无法使用 lcov 创建覆盖信息 警告:在 ./coverage 中找不到 .gcda 文件
【发布时间】:2020-08-14 00:08:14
【问题描述】:

我一直在尝试让代码覆盖适用于 Qt,但我正在努力生成任何覆盖信息

  1. 项目
    example.pro(包含 googletest.pri 的包含)
    • gtest_dependency(包含 googletest.pri
      • gtest 的头文件
        测试套件.h
        gtest 的源文件
        测试.cpp
        测试套件.cpp
    • main.cpp
      上面的所有文件几乎都是空的,只有运行测试的代码和一个测试用例。

我在 example.pro 中包含了链接器标志

QMAKE_CXXFLAGS += -O0 -g --coverage 
QMAKE_LFLAGS += -O0 -g --coverage

问题是,当我构建项目时,它会创建所有 .gcna .gcno 文件,但是当我执行 lcov 时,它会显示

警告:在 ./coverage -skipping 中找不到 .gcda 文件!
已完成 .info 文件创建
读取跟踪文件 ./coverage/coverage.info
lcov:错误:在跟踪文件 ./coverage/coverage.info 中找不到有效记录
读取数据文件 ./coverage/coverage-filtered.info
genhtml:错误:无法读取文件 ./coverage/coverage-filtered.info

Qt 版本 5.14.2
编译器 mingw730_64
lcov 1.14 版
gcov 版本 7.5.0

【问题讨论】:

    标签: c++ qt code-coverage lcov


    【解决方案1】:

    好的,我设法修复它
    如果您遇到与我相同的问题,请检查您是否在 /usr/include 上安装了 googletest,因为我在 linux bash 上使用 lcov 等,它找不到任何东西,因为所有内容都安装在 /mnt/ 上并且它找不到 gtest,因为它在 /usr 中搜索。
    qt 也是如此,即使包含在 -L 和 -I 中,它也找不到文件。
    我必须将两者都安装在 /usr/

    【讨论】:

      猜你喜欢
      • 2017-03-31
      • 2012-11-02
      • 2019-07-30
      • 1970-01-01
      • 2020-03-10
      • 2012-08-21
      • 2011-06-25
      • 2011-06-06
      • 2019-09-14
      相关资源
      最近更新 更多