Potrei ottenere con successo le informazioni sulla copertura del codice sulla nostra base di codice C++ su Linux utilizzando le funzionalità GCC di GCOV e lo strumento LCOV.CLang Code Coverage - Mac OS X - Linker Error
Ma ho problemi con Mac OSX.
Poiché Apple non ha più il classico compilatore GCC e temiamo che il compilatore LLVM-GCC un giorno scompaia troppo (LLVM-GCC non è nemmeno disponibile come opzione in XCode 5.0) - abbiamo deciso di utilizzare CLang per compilare il nostro codice.
Durante l'utilizzo del compilatore CLang iam passando questi flag -> -g -fprofile-arcs -ftest-coverage per generare le informazioni sulla copertura del codice.
È possibile visualizzare i file .gcno generati insieme ai file oggetto.
Quando si tratta di collegamento - "-lgcov” bandiera linker che funziona con GCC non è supportata
La copertura del codice a Clang/LLVM è ora supportato dalla libreria ‘profile_rt’ purtroppo è un po '.. . difficile da trovare questa libreria perché Apple per qualsiasi motivo ha deciso di non includerlo nel percorso di libreria di default Invece dovrete navigare manualmente in/usr/lib/a collegare contro di essa:
E come specificato stanno collegando contro libreria libprofile_rt.a
Ma ho problemi di linker.
Ma continuo a ricevere questi errori del linker
Undefined symbols for architecture x86_64:
"_llvm_gcov_init", referenced from:
___llvm_gcov_init in Iso9660Reader.o
___llvm_gcov_init in AutoExtractCreator.o
___llvm_gcov_init in TempFilePath.o
___llvm_gcov_init in TempPath.o
___llvm_gcov_init in ReadDirectory.o
___llvm_gcov_init in OpenDirectory.o
___llvm_gcov_init in SpltPath.o
...
ld: symbol(s) not found for architecture x86_64
Ho anche provato il collegamento alla libreria dinamica - libprofile_rt.dylib trovano in cartella/usr/lib - Ma ho ancora lo stesso problema.
Questa è la versione CLang in esecuzione su Mountain Lion.
clang --version
Apple LLVM version 5.0 (clang-500.2.75) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin12.5.0
Thread model: posix
devo anche XCode 5.0 e Developer Tools installato
Eventuali risposte saranno apprezzati.
Grazie !!
Con cosa stai analizzando i risultati? –
Questo problema mi è successo durante l'utilizzo di Slather per la copertura del codice e Injection per Xcode, anche in questo caso la soluzione in questa risposta ha funzionato. –
Questi sono flag del compilatore e flag del linker. Sembra improbabile che risolveranno un errore di collegamento e non lo risolveranno per me ... – poolie