gcov в больших проектах (статические библиотеки,…)

Я работаю над большим проектом со следующей структурой каталогов:

Source
 MyA
  aa.cpp
  ab.cpp
  ac.cpp
 MyB
  ba.cpp
  bb.cpp
  bc.cpp
 MyTest
  testaa.cpp
  testab.cpp
  testac.cpp
  testba.cpp
  testbb.cpp
  testbc.cpp
  main.cpp
Build
 MyA
  aa.o
  ab.o
  ac.o
  libMyA.a (static library)
 MyB
  ba.o
  bb.o
  bc.o
  libMyB.a (static library)
 MyTest
  testaa.o
  testab.o
  testac.o
  testba.o
  testbb.o
  testbc.o
  MyTest (executable)

После компиляции с помощью -fprofile-arcs -ftest-охват я запускаю приложение MyTest в каталоге Build / MyTest. Как и ожидалось, внутри каталога сборки находятся файлы * .gcno и * .gcda. После запуска gcov в каталоге MyTest разные *. Файлы gcov создаются, но, к сожалению, не для всего в MyA и MyB, хотя каждая функция вызывается внутри этих двух библиотек. Пробовал разные варианты, но почему-то я не могу создавать полезные (значит, правильные) файлы * .gcov с этим макетом.

Если я копирую каждый cpp в один каталог и повторяю шаги, все работает, как ожидалось, и анализ покрытия идеален.

5
задан azraiyl 7 April 2011 в 18:30
поделиться