gpt4 book ai didi

gcovr - 如果cpp,gcno和gcda文件不在同一文件夹中,则GCovr会生成0%的覆盖率报告

转载 作者:行者123 更新时间:2023-12-01 14:50:51 24 4
gpt4 key购买 nike

我在同一文件夹内有两个文件夹,如下所示:-
1.src(包含我的cpp文件)
2.linux(我正在运行g++并执行o文件的位置)
现在我正在运行以下命令

cd linux
g++ --coverage ../src/example1.cpp -o example1
./example1
cd ..
/opt/gcovr-3.2//scripts/gcovr -v -r .

我得到的输出为,覆盖率为0%

扫描目录。用于gcda / gcno文件...
找到2个文件(并将处理1个文件)
运行gcov:'gcov /opt/gcovr-3.2/doc/examples/example1/linux/example1.gcda --branch-counts --branch-probabilities --preserve-paths --object-directory /opt/gcovr-3.2/ '/opt/gcovr-3.2/doc/examples/example1/linux'中的doc / examples / example1 / linux'
解析文件/opt/gcovr-3.2/doc/examples/src/example1.cpp的覆盖率数据
过滤文件/opt/gcovr-3.2/doc/examples/src/example1.cpp的覆盖率数据
收集了0个文件的覆盖数据

为了进一步调试,我转到“linux”文件夹,如以下命令所示
gcov /opt/gcovr-3.2/doc/examples/example1/linux/example1.gcno --branch-counts --branch-probabilities --preserve-paths --object-directory /opt/gcovr-3.2/doc/examples/example1/linux

我得到了有效覆盖的输出

/opt/gcovr-3.2/doc/examples/example1/linux
文件“../src/example1.cpp”
执行的行数:7的85.71%
执行的分支:20.00的100.00%
至少拍摄一次:2的50.00%
已执行的通话:10.00%
../src/example1.cpp:创建'..#srC#example1.cpp.gcov'

现在我想知道我在做什么错?我的项目很复杂,所以我不想将所有cpp文件从相应的“src”文件夹复制到相应的“linux”文件夹。我试着用 --object-directory然后同样的结果。

最佳答案

从几个月开始,我一直在使用gcovr和gcov。

唯一与我所做的不同的是,您没有在“-r”标志中正确指定路径。

您应该始终指定完整路径。

即使它不是规范的,但路径应该完整,也可以。

并且始终在根目录名称之后分别为linux和Windows指定一个额外的斜杠“/”或“\”。
例如

-r "/path/to/root/directory/"

似乎这个额外的斜杠很重要,否则会带来问题。
不知道确切的问题,但我认为没有结尾斜杠就不会递归搜索。

关于gcovr - 如果cpp,gcno和gcda文件不在同一文件夹中,则GCovr会生成0%的覆盖率报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32249416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com