我认为 gcov-tool 是 gcc 标准包的一部分,对于 Ubuntu 来说也是如此。但不幸的是,对于 RHEL 来说并非如此。
我没有成功找到 RHEL 软件包名称来安装 gcov-tool。有人知道吗?
我应该在终端中写什么来安装 gcov-tool(与 gcc 和其他开发工具具有完全相同的版本)?
我尝试安装所有开发工具(yum group install "Development Tools"
),安装成功,但未gcov-tool
安装。
下面是我需要 gcov-tool 的 RHEL 版本的下一个列表: rhel6.6-x86_64 rhel6.7-x86_64 rhel6.8-x86_64 rhel6.9-x86_64 rhel7.0-x86_64 rhel7.1-x86_64 rhel7.2-x86_64 rhel7 .3-x86_64 rhel7.3-x86_64 rhel7.4-x86_64 rhel7.5-x86_64 rhel7.6-x86_64
答案1
您需要devtoolset
通过安装其中一个软件包yum
。我推荐它,devtoolset-8
因为它是最新的并且您将在 Ubuntu 中拥有它。如果您喜欢其中之一,也可以拥有它devtoolset-6
。devtoolset-7
首先,确保rhel-server-rhscl-7-rpms
存储库已启用。您可以将它们全部启用:
subscription-manager repos --enable rhel*
之后,安装devtoolset-8
:
yum install devtoolset-8*
然后,将 devtoolset 中的 gcc 添加到您的环境中:
scl enable devtoolset-8 bash
然后您可以看到gcov-tool
可用的:
which gcov-tool
它将位于/opt/rh/devtoolset-8/root/usr/bin
.
另一种获取方法gcov-tool
是从源代码构建gcc
,但这要复杂得多
答案2
可能会发生这样的情况:寻求此解决方案的人们实际上需要一种从多个来源获取一份报告的方法。
他们遇到了接下来的问题:
- 在不同的操作系统中需要执行不同的步骤来实现工具
- 来自不同操作系统或编译器版本的 *.gcda 有时无法合并
- 运行合并的机器可能与编译二进制文件的机器不是同一台(这将产生不兼容的 gcda),甚至可能没有相同的操作系统
因此,实现该目标的一般方法是将 *.gcda 转换为任何标记文本格式(例如 html 或 xml),然后使用现有工具之一来合并这些报告,无论在何处以及在哪个操作系统上。
这并不能回答上面的问题,但是这个想法可能对曾经遇到上面问题的人有所帮助。
优点:您只是忘记了二进制差异和操作系统相关工具。
缺点: *.gcda 集的大小比其 XML 表示形式的大小小 20-50 倍。