【发布时间】:2023-04-10 16:09:02
【问题描述】:
我正在尝试确定我的测试覆盖率。为此,我使用更新版本的 gcc 编译我的程序:
CC=/usr/local/gcc8/bin/gcc FC=/usr/local/gcc8/bin/gfortran ./configure.sh -external cmake -d
使用--coverage 选项编译后,我运行我的测试,这将创建*.gcda、*.gcno 和*.o.provides.build 文件。如果我运行类似的东西:
> $ /usr/local/gcc8/bin/gcov slab_dim.f90.gcda [±develop ●]
File '/Local/tmp/fleur/cdn/slab_dim.f90'
Lines executed:0.00% of 17
Creating 'slab_dim.f90.gcov'
这告诉我,gcov 运行良好。但是,如果我尝试在这些结果上运行 lcov:
lcov -t "result" -o ex_test.info -c -d CMakeFiles/
对于每个文件,我都会收到类似的错误消息:
Processing fleur.dir/hybrid/gen_wavf.F90.gcda
/Local/tmp/fleur/build.debug/CMakeFiles/fleur.dir/hybrid/gen_wavf.F90.gcno:version 'A82*', prefer '408R'
/Local/tmp/fleur/build.debug/CMakeFiles/fleur.dir/hybrid/gen_wavf.F90.gcno:no functions found
geninfo: WARNING: gcov did not create any files for /Local/tmp/fleur/build.debug/CMakeFiles/fleur.dir/hybrid/gen_wavf.F90.gcda!
这是我在使用系统标准 /usr/bin/gcov 时收到的相同错误消息
这让我相信 lcov 调用旧的 gcov 而不是新的。如何强制 gcov 使用新版本?
【问题讨论】: