lcov绝对路径与相对路径

时间:2015-09-24 13:29:19

标签: relative-path lcov

lcov如何决定何时使用绝对路径与相对路径?

我有一个app目录,其中包含我的每个产品的共享库和几个二进制文件的子目录的子目录。像这样:

/home/user/app/libfoo/bar
/home/user/app/libfoo/baz
/home/user/app/libqux
/home/user/app/testsuite
/home/user/app/product

但是,当运行lcovgenhtml时,目录列出如下:

/home/user/app/libqux
/home/user/app/testsuite
/home/user/app/product
bar
baz

换句话说,我的一个共享库目录中的所有内容都使用相对路径,而其他所有内容都使用绝对路径。的为什么吗

我对lcovgenhtml的调用非常简单:

cd ~/app
testsuite/run_tests
lcov --capture --directory . --output-file coverage.info --gcov-tool gcov-5 --no-external
genhtml coverage.info --output-directory coverage

1 个答案:

答案 0 :(得分:3)

这是genhtml --prefix功能的结果。

   -p prefix
   --prefix prefix
          Remove prefix from all directory names.

          Because lists containing long filenames are difficult  to  read,
          there  is a mechanism implemented that will automatically try to
          shorten all directory names on the overview page beginning  with
          a  common  prefix.  By  default, this is done using an algorithm
          that tries to find the prefix which, when applied, will minimize
          the resulting sum of characters of all directory names.

          Use this option to specify the prefix to be removed by yourself.

就我而言,/home/user/app/libfoo库层次结构足够参与genhtml决定通过剥离它来保存更多字符,而不是更明显的剥离/home/user/app方法。

传递明确的--prefix /home/user/app选项可以解决此问题。