Comment faire pour resovle gcov init problème de référence non défini lorsque le lien

je travail sur un code C de la couverture de l'étude et ont rencontré un problème ci-dessous, la version de GCC 4.4.6:

  1. ajout de l'indicateur de compilateur CFLAGS = --coverage et l'option linker LDFLAGS := --coverage ou LOCAL_LDLIBS := --coverage et j'ai obtenu le message d'erreur:

undefined reference to '__gcov_init'" and "undefined reference to '__gcov_merge_add'

  1. ajout de l'option LOCAL_LDFLAGS := --coverage, et a obtenu erreur de lien:

libgcov.a(_gcov.o): in function __gcov_set_sampling_rate: undefined reference to '__gcov_sampling_rate' libgcov.a(_gcov.o): in function gcov_exit: undefined reference to '__gcov_pmu_profile_filename' libgcov.a(_gcov.o): in function __gcov_init: undefined reference to '__gcov_pmu_profile_options' '__gcov_pmu_top_n_address'

quelqu'un peut-il fournir des suggestions à ce sujet?

28
demandé sur fduff 2013-05-22 06:38:40

3 réponses

Essayez cette méthode:

compilez le code pour lequel vous voulez générer la couverture avec ces options:

CFLAGS: -fprofile-arcs -ftest-coverage

LFLAGS: -lgcov --coverage

si cela ne résout pas le problème, veuillez fournir quelques informations sur la structure de votre application, c'est-à-dire si son programme unique ou une application impliquant des bibliothèques partagées/statiques, etc.

espérons que cela aide!

33
répondu Raj 2015-11-24 12:09:40

vous liez avec-lgcov? Si vous utilisez un Makefile, il serait d'une grande aide d'y jeter un oeil afin de vous aider.

9
répondu niglesias 2013-05-31 18:20:42

Je ne peux pas être sûr quel changement a finalement fait l'affaire pour moi mais je pense que c'était le -fprofile-generate drapeau. En utilisant le GPS GNAT je suis allé à la Switches tab sur la gauche et ensuite sélectionné le Ada Linker onglet sur le haut. Ensuite j'ai activé la case à cocher Code Coverage. Oh ouais j'ai trouvé ça sur le Builder tab dans la même zone si vous activez le Recompile if switches changed case à cocher il peut sauver beaucoup de dents grincement. Ça ralentit les choses pour les pros, mais ça m'a aidé.

0
répondu Tod 2015-03-06 18:15:23