2010-10-04 12 views
3

J'utilise GCC version 3.3.6. Lorsque j'instrument mes fichiers objet avec -fprofile-arcs et -ftest-coverage, les fichiers *.bb et *.bbg appropriés sont créés.GCov et GCC, fichiers * .da non créés

Les fichiers objets sont ensuite reliés entre eux dans une bibliothèque statique libfoo.a avec:
ar rcs libfoo.a foo1.o foo2.o.

Enfin, une série de bibliothèques statiques sont reliés entre eux pour créer mon exécutable avec:
gcc -fprofile-arcs -o foo.o <static libraries linked all>

Maintenant, quand je lance l'image, les fichiers * .da ne sont pas obtenir créé. Y a-t-il un pas qui me manque? Est-ce que quelqu'un a d'autres suggestions?

Merci.

Répondre

3

Les besoins exécutables à être liés à la bibliothèque gcov:

gcc -fprofile-arcs -o foo.o <static libraries linked all> -lgcov 

EDIT: A partir de gcc 4.1.2, l'option --coverage peut être utilisé comme synonyme de -fprofile-arcs -ftest-coverage (lors de la compilation) et -lgcov (lors de la liaison).

En outre, il est à noter que les fichiers sont créés dans le même répertoire que la compilation. Ce répertoire doit être accessible depuis l'environnement d'exécution. Les versions récentes de gcc (4-1) ont introduit des variables d'environnement pour régler le répertoire cible: GCOV_PREFIX et GCOV_PREFIX_STRIP, voir le document cross-profiling section de gcc doc.

Questions connexes