将 lcov 与 gcc-8 一起使用

Ste*_*ein 6 gcov lcov

我正在尝试确定我的测试覆盖率。为此,我使用较新版本的 gcc 编译我的程序:

\n\n
CC=/usr/local/gcc8/bin/gcc  FC=/usr/local/gcc8/bin/gfortran ./configure.sh  -external cmake -d\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用选项编译后,--coverage我运行测试并创建*.gcda,*.gcno*.o.provides.build文件。如果我运行类似的东西:

\n\n
> $ /usr/local/gcc8/bin/gcov slab_dim.f90.gcda                                                                             [\xc2\xb1develop \xe2\x97\x8f]\nFile \'/Local/tmp/fleur/cdn/slab_dim.f90\'\nLines executed:0.00% of 17\nCreating \'slab_dim.f90.gcov\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

这表明 gcov 运行良好。但是,如果我尝试对这些结果运行 lcov:

\n\n
lcov -t "result" -o ex_test.info -c -d CMakeFiles/\n
Run Code Online (Sandbox Code Playgroud)\n\n

对于每个文件,我都会收到类似以下的错误消息:

\n\n
Processing fleur.dir/hybrid/gen_wavf.F90.gcda\n/Local/tmp/fleur/build.debug/CMakeFiles/fleur.dir/hybrid/gen_wavf.F90.gcno:version \'A82*\', prefer \'408R\'\n/Local/tmp/fleur/build.debug/CMakeFiles/fleur.dir/hybrid/gen_wavf.F90.gcno:no functions found\ngeninfo: WARNING: gcov did not create any files for /Local/tmp/fleur/build.debug/CMakeFiles/fleur.dir/hybrid/gen_wavf.F90.gcda!\n
Run Code Online (Sandbox Code Playgroud)\n\n

这与我使用系统标准时收到的错误消息相同/usr/bin/gcov

\n\n

这让我相信 lcov 调用旧的 gcov 而不是新的。如何强制 gcov 使用新版本?

\n

Ste*_*ein 0

环境$PATH变量需要扩展/usr/local/gcc8/bin/