12

My source and build tree looks like this (see Makefile to put object files from source files different directories into a single, separate directory?) after a make (which builds and runs 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 - ... 

I can then produce .gcov files in the test directory by running gcov -o obj/ ../src/Foo.cpp and gcov -o obj/ ../src/Bar.cpp.

But if I run lcov -d obj/ -c -o FooAndBarTests.lcov I get:

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 ... 

And then when I run genhtml FooAndBarTests.lcov I get:

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! 

How do I tell lcov and genhtml where the .cpp and .h files are?

2
  • I don't know for sure but try using the -g option when compiling. It adds meta data for debugging purposes (including file paths and line numbers, I think). Commented Dec 10, 2010 at 21:34
  • I am already using the -g option when compiling. Commented Dec 11, 2010 at 0:11

1 Answer 1

17

Use the -b option to lcov. The -b option specifies code base.

Sign up to request clarification or add additional context in comments.

1 Comment

Adding "-b ." to my lcov command-line (when run in the same directory where I did the make) did the trick.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.