मेरे स्रोत और पेड़ का निर्माण (Makefile to put object files from source files different directories into a single, separate directory? देखें) इस तरह दिखता है एक मेकअप (जो बनाता है और FooAndBarTests चलता है) के बाद:मैं lcov कैसे कहूं कि मेरी .cpp और .h फ़ाइलों को कहां ढूंढें?
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
- ...
मैं तो gcov -o obj/ ../src/Foo.cpp
और gcov -o obj/ ../src/Bar.cpp
चलाकर परीक्षण निर्देशिका में फ़ाइलों को .gcov उत्पादन कर सकते हैं।
लेकिन अगर मैं lcov -d obj/ -c -o FooAndBarTests.lcov
चलाने मैं:
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
...
और फिर जब मैं genhtml FooAndBarTests.lcov
चलाने मैं:
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!
मैं lcov और genhtml जहां सीपीपी और ज फ़ाइलें कैसे बताऊँ कर रहे हैं?
मुझे निश्चित रूप से पता नहीं है लेकिन संकलन करते समय -g विकल्प का उपयोग करने का प्रयास करें। यह डीबगिंग उद्देश्यों के लिए मेटा डेटा जोड़ता है (फ़ाइल पथ और लाइन नंबर सहित, मुझे लगता है)। – sellibitze
संकलन करते समय मैं पहले से ही -g विकल्प का उपयोग कर रहा हूं। –