【问题标题】:GCC gprof complaining GLIBC_2.16 is not foundGCC gprof 抱怨 GLIBC_2.16 未找到
【发布时间】:2019-09-12 07:16:18
【问题描述】:

我有一个在 PowerPC e500v2 嵌入式 Linux 上运行的代码,我想测量它的性能,因为它在无限循环中运行。我尝试了gcc's gprof,只需将-pg 选项添加到gcc。当我在目标设备上运行二进制文件时,我得到了这个:

./main: /lib/libc.so.6: version GLIBC_2.16 not found (required by ./main)

我正在使用带有默认 CFLAGSLDFLAGS 以及这些标志的 ELDK 5.6 工具链:-Wall -lrt -pthread -D_GNU_SOURCE 没有别的。一些文章建议定义FORTIFY_SOURCE 以及优化级别,但它不起作用。我搜索了一些 gcc 的功能测试宏并尝试定义一些 GLIBC 2.16 特定的宏,但没有成功。

当我使用来自 <sched.h> 的一些结构和函数时,我遇到了与 GLIBC 2.17 类似的问题,添加 _GNU_SOURCE 解决了它。关于如何解决它的任何想法?

【问题讨论】:

    标签: embedded-linux glibc


    【解决方案1】:

    当我在目标设备上运行二进制文件时,我得到了这个

    您的工具链针对的 GLIBC 版本比目标上安装的版本更新。

    这不会在非pg 编译时对您造成伤害,这只是偶然。对源的“无害”更改可能会导致同样的问题。

    您需要将您的目标升级到您的工具链实际构建的 GLIBC 版本。

    【讨论】:

      猜你喜欢
      • 2016-02-27
      • 1970-01-01
      • 1970-01-01
      • 2022-12-28
      • 2011-07-30
      • 2016-07-08
      • 2016-08-25
      • 1970-01-01
      • 2012-12-05
      相关资源
      最近更新 更多