può gcov accordo con oggetto condiviso?
-
02-10-2019 - |
Domanda
sto usando da poco gcov per raccogliere le informazioni copertura del codice. gcov gioca bene con l'applicazione eseguibile :), ma quando provo a caricare un file .so, ho ottenuto questo errore:. sconosciuto simbolo __gcov_merge_add
Poi ho ricerca su Google e qualcuno ha detto aggiungendo -lgcov alla bandiera di collegamento (LDFLAGS), ho fatto aggiungere questa opzione e non ha funzionato. Cerco anche in opzione --coverage nel legame di bandiera, non può sbarazzarsi di questo errore.
Qualcuno può aiutarmi su questo tema?
Grazie.
Soluzione
mi sono imbattuto in questo problema troppo, ma da allora risolto. Mi basta usare l'opzione --coverage sia CPPFLAGS e LDFLAGS. Penso che dovrebbe prendersi cura del problema di compilazione per voi.
L'oggetto condiviso ancora non sembra produrre .gcda file e anche se non sono sicuro di come risolvere che i problemi. Come hai detto tu, funziona bene con gli eseguibili, ma oggetti condivisi sembrano avere qualche problema.
Modifica A quanto pare, gcov supportati da oggetti condivisi ora. Ho fatto una notevole quantità di ricerche di ieri e ho trovato in conflitto risposte, in modo ho spedito l'elenco gcc-aiuto. Vedi thread qui: http://gcc.gnu.org/ ml / gcc-help / 2010-09 / msg00130.html . Non ho provato risolvere il mio problema in base alla risposta ancora, ma mi post indietro quando lo faccio.
EDIT 2: Gli oggetti condivisi funzionano con gcov (o piuttosto che --cover opzione con gcc). C'è un altro post con i dettagli qui: gcov: produrre .gcda uscita dal libreria condivisa? . Si fa riferimento anche lo stesso filo sopra.