¿Cómo le digo lcov dónde encontrar mis archivos .cpp y .h?
-
08-10-2019 - |
Pregunta
Mi origen y de árbol de construcción es similar al siguiente (ver Makefile para poner los archivos de objetos a partir de archivos fuente de directorios diferentes en un único directorio separado ) después de una marca (que construye y ejecuta FooAndBarTests):?
src
- Foo.cpp
- Bar.cpp
inc
- Foo.h
- Bar.h
test
- FooTest.cpp
- BarTest.cpp
- Main.cpp
- Makefile
- obj
- Foo.gcda
- Foo.gcno
- Bar.gcda
- Bar.gcno
- FooAndBarTests
UnitTest++
- libUnitTest++.a
- src
- ...
Entonces puede producir .gcov archivos en el directorio de prueba mediante la ejecución de gcov -o obj/ ../src/Foo.cpp
y gcov -o obj/ ../src/Bar.cpp
.
Pero si me quedo lcov -d obj/ -c -o FooAndBarTests.lcov
me sale:
Capturing coverage data from obj/
Found gcov version: 4.2.1
Scanning obj/ for .gcda files ...
Found 4 data files in obj/
Processing Foo.gcda
../src/Foo.cpp:cannot open source file
Processing FooTest.gcda
FooTest.cpp:cannot open source file
../inc/Foo.h:cannot open source file
../UnitTest++/src/Checks.h:cannot open source file
...
Y luego cuando corro genhtml FooAndBarTests.lcov
me sale:
Reading data file FooAndBarTests.lcov
Found 45 entries.
Found common filename prefix "/Users/dspitzer/FooAndBar/test"
Writing .css and .png files.
Generating output.
Processing file UnitTest++/src/Checks.h
genhtml: ERROR: cannot open /Users/dspitzer/FooAndBar/test/UnitTest++/src/Checks.h for reading!
¿Cómo le digo lcov y GENHTML donde el .cpp y .h son?
Solución
Utilice la opción -b
a lcov
. La opción especifica -b
base de código.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow