我正在运行 lcov,我无法阻止它分析基本 c++ 目录。我尝试了 --no-external ,它排除了一切。我尝试过--删除
lcov --remove <in-file> <pattern> -output-file <out-file>
它需要一个针对当前工具链且非常详细的模式。似乎没有办法有一个命令可以排除“/usr/include”下的所有内容。
这是我在 Ubuntu 24.04 上编译时当前输出的目录,如果我在 22.04 上编译,名称会有所不同。
include/xxx
src
/usr/include/c++/13
/usr/include/c++/13/bits
/usr/include/c++/13/ext
/usr/include/x86_64-linux-gnu/c++/13/bits
我的代码结构是
project/include/xxx/xxx.h
project/src/xxx.cc
project/build -- cmake build directory
这是一个如此微不足道的请求,我简直不敢相信它没有简单的解决方案。
如果您使用的是最近的 lcov 版本,那么对
--exclude
和 --include
模式有相当广泛的支持。
看起来正是您所要求的。
(包含/排除模式可以在任何工具中使用:lcov
、genhtml
等。
这很有用,因为您可以收集和存储所有数据 - 但选择仅为其部分数据生成 HTML 报告。)