gpt4 book ai didi

c++ - 烦人的错误消息 : cannot merge previous GCDA file

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:50:08 27 4
gpt4 key购买 nike

问题:

我正在使用以下标志生成我的 Qt 应用程序(.pro 文件)的代码覆盖率:

QMAKE_CXXFLAGS += --coverage
QMAKE_LFLAGS += --coverage

代码覆盖率已正确生成,问题是如果我只想运行一个测试函数/类(并且已经创建了 GCDA 文件),我会收到以下错误消息:

profiling: /Users/user/.../build-myapp/myclass.gcda: cannot merge previous GCDA file: corrupt arc tag (0x00000000)

请注意,每个 GCDA 文件都会显示错误消息。另请注意,它似乎不会影响测试用例。


解决方法:

如解释here ,它“是构建工具未能将当前结果合并到现有 .gcda 覆盖文件中的结果”。正如问题中所回答的,一个选项是在运行测试之前删除 GCDA 文件。例如,在构建阶段添加如下命令:

find . -name "*.gcda" -print0 | xargs -0 rm

问题:

我的问题是我不想在每次运行测试用例时都删除旧的 GCDA 文件。由于我只运行一个测试函数/类,我想保留旧的 GCDA 文件,只合并与当前类相关的 GCDA 文件。正如我手动检查的那样,它已经完成了,因为只更新了我当前类(class)的覆盖范围,而旧的覆盖范围保持不变。

那么,是否有一个命令可以忽略(不显示)与 GCDA 合并问题相关的错误消息?或者更好的是,只更新与当前测试类相关的 GCDA 文件的命令?

注意:我在带有 Clang 的 macOS Sierra 上使用 Qt 5.3.2。


相关问题:

最佳答案

当您使用分析进行编译时,每次运行的结果都存储在一个以 .gcda 结尾的文件中。

当您现有的 .gcda 文件的格式与刚刚完成运行的当前程序的格式不同时,就会出现错误。

当我运行我的可执行文件的 Linux 版本,然后为 MacOS 重新编译并运行它时,这发生在我身上。 MacOS 程序看到了现有的 .gcda 文件并生成了错误页面。

通过删除现有的 .gcda 文件消除错误。

关于c++ - 烦人的错误消息 : cannot merge previous GCDA file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47393377/

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