È possibile produrre file di dati gcov (file .gcda) eseguendo un eseguibile collegato a una libreria condivisa costruita con l'opzione --coverage?gcov: produce output .gcda dalla libreria condivisa?
Fondamentalmente, ho la libreria principale costituita da più file C++ compilati in una libreria condivisa e quindi una sottodirectory chiamata "test" contenente un programma di test che collega e verifica la libreria principale. Tutto viene compilato correttamente e i file .gcno vengono prodotti sia per i file di origine della libreria sia per i file di origine del test. I file .gcda sono prodotti solo per i file sorgente di test, ma ho davvero bisogno di questi per i file sorgente reali che sono stati compilati nella libreria condivisa.
Qualche idea?
Ulteriori informazioni:
- E 'tutto codice C++
- Tutto viene costruire con gli script make generati da automake
- L'opzione --coverage è specificata per lib_la_CPPFLAGS e lib_la_LDFLAGS nella libreria condivisa Makefile.am
- L'opzione --coverage è specificata per AM_CPPFLAGS e AM_LDFLAGS in eseguibile di prova Makefile.am
- I file di origine di prova fanno uso di Google prova (un quadro C++ Unit Testing)
Edit: fisso problema spaziatura
Inoltre, scusa per aver risposto alla mia domanda e accettandola, ma è rimasta qui per giorni senza l'aiuto di nessuno. – deuberger
Sto anche iniziando a lavorare con gcov e le librerie condivise, e trovare la tua risposta e il thread di gcc-help di riferimento saranno utili. È un buon motivo per rispondere alla tua stessa domanda. – Tom
@ Tom: Grazie, sono contento che questo sia utile. Dovrei anche notare che gcov ha un'opzione -o (--object-direct) che può essere usata anche per specificare la posizione dei file .gcda. – deuberger