geninfo ищет .da вместо .gcda

Когда я пытаюсь выполнить следующую команду lcov через Plink (я передаю 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: использовать неинициализированного значения в сопоставлении с образцом (m //) в / home / myUser / lcov / lcov / usr / bin / geninfo строка 3622. geninfo: Использование неинициализированного значения в сопоставлении с образцом (m //) в / home / myUser / lcov / lcov / usr / bin / geninfo, строка 3622. geninfo: ОШИБКА: файлы .da не найдены в.!

Похоже, что geninfo ожидает файлы .da вместо файлов .gcda. когда я выполняю ту же команду без Plink (в том же CWD), lcov работает нормально и генерирует действительный файл .info. Он также отлично работает, когда я запускаю его вручную через PuTTY.

в чем может быть причина этого?


person ronstudy1    schedule 11.05.2014    source источник


Ответы (2)


Проблема была более общей. Plink использует разные переменные среды. Решение заключалось в том, чтобы вручную установить правильные переменные среды. В моем случае я запускаю сценарий perl, поэтому я добавил в заголовок файла:

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

отсутствующая переменная среды привела к тому, что код получил неправильную версию gcov, и поэтому файлы .da были найдены вместо файлов .gcda, которые принадлежат к более новым версиям lcov

person ronstudy1    schedule 11.05.2014

Обновление версии lcov до последней решило проблему. Старая версия lcov ищет .da вместо .gcda. Обновление до последней версии 1.13 решает проблему.

person Anbu    schedule 28.02.2019