Führen Sie gcov-tool mit c++ - compiler
Ich arbeite zum ersten mal mit der coverage-tool gcov zu analysieren, ein großes Projekt.
Ich habe einem Verzeichnis-Struktur wie diese:
HW
-FooHW1.cpp
-FooHW1.h
-FooHW2.cpp
-FooHW2.h
-...
-Makefile.am
Lib1
-FooLib1.cpp
-FooLib1.h
-FooLib2.cpp
-FooLib2.h
-...
-Makefile.am
Lib2
...
-Makefile.am
Lib3
...
-Makefile.am
Main
-main.cpp
-main.h
-Makefile.am
Jedes Verzeichnis hat seine eigenen Makefile erzeugt automake auf, erzeugt Abhängigkeiten und überhaupt, wo der compiler ist c++.
Da mein Ziel ist die Analyse der statement coverage wollte ich mit gcov hinzufügen der folgenden Zeilen in jedem Makefile.bin für die Erstellung meiner .gcno und .gcda-Dateien, um zu verwenden, gcov:
AM_CXXFLAGS = -fprofile-arcs -ftest-coverage
AM_LDFLAGS = -fprofile-arcs
Leider, auch wenn es kompiliert, es nicht schaffen (oder link) der mehreren *.o und beim aufrufen gcov in der Regel gibt mir die Fehlermeldung:
undefined __gcov_init
Ich habe auch versucht susbtituing, nach http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#index-coverage-536, die oberen Anweisungen, um:
AM_CXXFLAGS = --coverage
AM_LDFLAGS = --coverage
aber es tut nicht den trick für mich.
Möchte ich angeben, dass dies die erste Erfahrung mit dem gcov-tool und im Umgang mit großen c++ Projekten.
Thaks für Ihre Hilfe.
- Ich denke, dass Sie vergessen haben, verknüpfen Sie Ihren code mit lcov.
- Nicht lcov nur ein grafisches front-Kopf für die gcov-tool? Ich bin wirklich unerfahren, so dass ich nicht bekommen, Ihre Anregung, können Sie mehr klar sein? danke!
- Ja, ich kann schon verwirrend sein dieser.
AM_LDFLAGS = --coverage
sollte das tun, was ich meinte. - Ich habe Folgendes in das Makefile.bin:
AM_CXXFLAGS = --coverage
AM_LDFLAGS = --coverage
AM_CFLAGS = -shared
und es schafft endlich die *gcno-Dateien, konnte ich nicht wirklich testen, die insgesamt dazu führen, dass ich hatte einige andere Probleme, hoffe, es wird funktionieren. Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
http://bobah.net/d4d/tools/code-coverage-with-gcov und
http://www.slideshare.net/maguschen/using-gcov-and-lcov sind gute Quellen für mit gcov/lcov (mit dieser Hilfe habe ich es geschafft, zu verwenden lcov in wirklich großen, komplizierten Projekt)
lcov Ihnen die Möglichkeit zu zeigen, Ergebnisse der Berichterstattung im html-format (schön Prozentsätze für die aufgelisteten Dateien oder auch für die Zeilen in der source-Dateien).
Oh, und ich hoffe, dass Sie erkennen, es ist ein dynamischer Abdeckung, so dass Sie wirklich das Programm ausführen, um jede Abdeckung (Gebäude sollten nur erstellen
.gcno
- Dateien).lcov
stattgcov
Dank!link der Bibliothek gocv
helfen sollen,