gcov bei größeren Projekten (statische Bibliotheken, ...)

Arbeite ich an größeren Projekt, das Folgendes Verzeichnis-layout:

Source
 MyA
  aa.cpp
  ab.cpp
  ac.cpp
 MyB
  ba.cpp
  bb.cpp
  bc.cpp
 MyTest
  testaa.cpp
  testab.cpp
  testac.cpp
  testba.cpp
  testbb.cpp
  testbc.cpp
  main.cpp
Build
 MyA
  aa.o
  ab.o
  ac.o
  libMyA.a (static library)
 MyB
  ba.o
  bb.o
  bc.o
  libMyB.a (static library)
 MyTest
  testaa.o
  testab.o
  testac.o
  testba.o
  testbb.o
  testbc.o
  MyTest (executable)

Nach dem kompilieren mit -fprofile-arcs -ftest-coverage führe ich die MyTest-Anwendung in der Bau - /MyTest-Verzeichnis. Wie erwartet gibt es hier *.gcno und *.gcda Dateien im Build-Verzeichnis. Nach dem ausführen gcov innerhalb der MyTest anderen Verzeichnis *.gcov-Dateien produziert, aber leider nicht für alles, was im inneren MyA und MyB, obwohl jede Funktion wird aufgerufen, innerhalb dieser zwei Bibliotheken. Versucht, verschiedene Optionen, aber irgendwie bin ich nicht in der Lage, sinnvolle (korrekte) *.gcov-Dateien mit diesem layout.

Wenn ich Kopie jedes cpp in einem Verzeichnis und wiederholen Sie die Schritte, alles funktioniert wie erwartet und die coverage-Analyse ist perfekt.

InformationsquelleAutor azraiyl | 2011-04-07

Schreibe einen Kommentar