Ich verwende Waf, um ein C-Projekt zu erstellen, und gcov
, um einige Testcodeabdeckung zu haben. Allerdings ruft Waf gcc
in einer Weise, die foo.c.1.o
von Quelldatei foo.c
die gcov
verwirrt bei der Suche nach den erzeugten Dateien erzeugt:Wie verhindert man, dass Waf Objektdateien umbenennt?
$ gcov foo.c
$ foo.gcno:cannot open graph file
Glücklicherweise gcov
hat die -o
Option, mit dem es möglich ist, die entsprechende Objektdatei angeben . Dies ist jedoch nicht bequem und die Ausführung lcov
schlägt immer noch fehl. Daher sind meine Fragen:
- Warum benennt Waf die Objektdateien?
- Wie kann dieses Verhalten deaktiviert werden oder ...
- Wie kann
gcov
/lcov
dieses Problem umgehen?
Das war wirklich schwierig zu arbeiten trotz der klaren Antwort. Anscheinend gibt es einen Fehler in der Hauptversion von gcovr, der bewirkt, dass jedes Zeichen des Arguments --root als separater Pfad in einer Liste gelesen wird. Da $ (pwd) mit '/' beginnt, beginnt es mit der Suche im gesamten Dateisystem nach .gcno-Dateien und hängt. Ich habe die Zeile 1828 geändert, wo get_datafiles aufgerufen wird, um stattdessen "[options.root]" zu übergeben und es zum Laufen zu bringen. – flodin
@flodin Der Fehler "[options.root]" wurde in gcovr 3.2 behoben. –