1

Plink を介して次の lcov コマンドを実行しようとすると (次のコマンドを含むテキスト ファイルを引数として Plink に渡します)。

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

それは

GNU gcov バージョン 1.5 からのカバレッジ データのキャプチャ。 スキャン中。.da ファイルの場合 ... gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] ファイル geninfo: / でのパターン マッチ (m//) での初期化されていない値の使用home/myUser/lcov/lcov/usr/bin/geninfo 行 1874. gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] ファイル geninfo: 初期化されていない値の使用/home/myUser/lcov/lcov/usr/bin/geninfo 行 3622 でのパターン マッチ (m//)。 geninfo: パターン マッチ (m//) での初期化されていない値の使用 /home/myUser/lcov/lcov/usr /bin/geninfo 行 3622. geninfo: エラー: .da ファイルが .! に見つかりません

geninfo は.gcdaファイルではなく.daファイルを想定しているようです。Plink なしで (同じ CWD で) 同じコマンドを実行すると、lcov は正常に実行され、有効な.infoファイルが生成されます。PuTTY を使用して手動で実行しても問題なく動作します。

この理由は何でしょうか?

4

2 に答える 2

1

問題はより一般的でした。Plink はさまざまな環境変数を使用します。解決策は、正しい環境変数を手動で設定することでした。私の場合、perl スクリプトを実行するので、ファイルの先頭に追加しました。

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

環境変数が欠落しているため、コードが誤った gcov バージョンを取得したため、新しい lcov バージョンに属する .gcda ファイルの代わりに .da ファイルが検索されました

于 2014-05-11T15:12:55.130 に答える