geninfo搜索.da而不是.gcda

问题描述 投票:1回答:2

当我尝试通过Plink执行以下lcov命令时(我给Plink一个文本文件作为包含以下命令的参数)

lcov --capture --directory . --output-file coverage.info

结果是

GNU gcov 1.5版从中捕获覆盖数据。扫描。 for .da files ... gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] file geninfo:在模式匹配中使用未初始化的值(m //)/ home / myUser / lcov / lcov / usr / bin / geninfo line 1874. gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] file geninfo:使用未初始化的值模式匹配(m //)at / home / myUser / lcov / lcov / usr / bin / geninfo line 3622. geninfo:在/ home / myUser / lcov / lcov / usr中使用模式匹配中的未初始化值(m //) / bin / geninfo line 3622. geninfo:错误:找不到.da文件。!

似乎geninfo需要.da文件而不是.gcda文件。当我执行没有Plink的相同命令(在同一个CWD中)时,lcov运行正常并生成一个有效的.info文件。当我手动执行它时,它也运行良好。

这可能是什么原因?

command code-coverage putty plink lcov
2个回答
1
投票

问题更为笼统。 Plink使用不同的环境变量。解决方案是手动设置正确的环境变量。在我的情况下,我运行perl脚本,所以我添加在文件的头部:

use Env;
$ENV{PATH} = "correct PATH variable";

缺少环境变量导致代码出错gcov版本,因此.da文件被分离,而不是属于较新的lcov版本的.gcda文件


0
投票

将lcov版本升级到最新版解决了这个问题。较旧版本的lcov搜索.da而不是.gcda。更新到最新版本1.13可解决此问题

© www.soinside.com 2019 - 2024. All rights reserved.