【发布时间】:2016-07-02 10:30:08
【问题描述】:
我正在运行 gcov 来测量覆盖率,但对于我在 c 代码中使用的每个函数,我都会收到“有退出块的弧”消息。这条消息有问题吗?我应该忽略它们吗?
【问题讨论】:
标签: gcov
我正在运行 gcov 来测量覆盖率,但对于我在 c 代码中使用的每个函数,我都会收到“有退出块的弧”消息。这条消息有问题吗?我应该忽略它们吗?
【问题讨论】:
标签: gcov
我最近遇到了这个问题,想在@tutejszy的回答之外补充一点信息
如果您正在交叉编译您的代码(或使用不是默认安装的工具链),您将需要使用这个特定的工具链 gcov。
如果您想在刚刚创建的 gcov 对象上使用 lcov,则需要在运行 lcov 时使用选项 --gcov-tool <path to gcov> 指定工具链 gcov 的路径
【讨论】:
这可能意味着您的 gcno 文件是使用更新/不同版本的 gcc 编译器生成的。看看一开始你是否也有类似'version '404*', prefer '402*'之类的警告,如果是,解决方案如下:
检查g++ --version 和gcov --version 是否给您相同的结果。如果没有,请更新您的工具,例如 sudo apt-get install gcov,或特定版本,例如 `sudo apt-get install gcc-4.7。
如果您有多个版本的 gcc 安装程序,您可以使用 update-alternatives 在它们之间切换:
查询(你有什么)例如:sudo update-alternatives --query gcc。
添加/进行更改示例:sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 60
【讨论】: