我正在运行gcov来测量覆盖率,但是我在c代码中使用的每个函数都得到“具有退出块的弧”消息。这条消息有问题吗?我应该忽略它们吗?
答案 0 :(得分:4)
这可能意味着您的gcno文件是使用更新/不同版本的gcc编译器生成的。看看在开始时你是否也有'版本'404 *'的警告,更喜欢'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
答案 1 :(得分:0)
我最近遇到了这个问题,除了@tutejszy 的回答之外,我还想添加一条信息
如果您要交叉编译代码(或使用不是默认安装的工具链),则需要使用此特定工具链 gcov。
如果您想在刚刚创建的 gcov 对象上使用 lcov,则需要在运行 lcov 时使用选项 --gcov-tool <path to gcov>
指定工具链 gcov 的路径