【问题标题】:g++ with -m32 --coverage profile .gcda: Cannot openg++ with -m32 --coverage profile .gcda:无法打开
【发布时间】:2020-03-06 12:26:52
【问题描述】:

当我尝试在 64 位操作系统的 RedHat 6.10 上使用带有 -m32 选项的 gcc/g++ 编译我的 C/C++ 软件时,我们有一个导出 64 位文件 ID 的戴尔 isilon 文件系统,我们得到一个运行时使用代码覆盖编译选项时出错。我编写了一个简单的 main() 测试应用 test.cpp 并使用以下编译选项进行编译。

g++ --coverage -m32 test.cpp -o test

当我运行 32 位可执行文件时,我们收到与我们的文件系统导出 64 位文件 ID 与 32 位文件系统相关的运行时错误。我们不想更改为 32 位文件 ID 导出。

./测试 分析:test.gcda:无法打开

如果我们在没有 -m32 选项的情况下编译应用程序,问题就会消失。但是,出于本讨论范围之外的其他原因,我需要使用 -m32 进行编译。

gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) 红帽 6.10 64 位操作系统

感谢您的帮助。

【问题讨论】:

    标签: gcc code-coverage


    【解决方案1】:

    似乎更高版本的 gcc 已修复此问题。我现在知道 gcc 版本 8.2.0 可以正确编译并且没有关于无法找到 .gcda 文件的错误。这是有道理的,因为戴尔 isilon 系统较新,而我们在 RedHat 6.10 中使用的 gcc 编译器版本相当旧。

    【讨论】:

      猜你喜欢
      • 2012-10-13
      • 2021-06-28
      • 2013-11-20
      • 1970-01-01
      • 2018-04-22
      • 2020-08-14
      • 1970-01-01
      • 2019-06-23
      • 2011-10-16
      相关资源
      最近更新 更多