linux - 未定义对 `__gcov_exit' 的引用?

标签 linux gcc glibc yocto gcov

当我使用 yocto 项目构建 glibc 库时,它提供了
错误:缺少属性((构造函数))支持??

添加覆盖标志后:

TARGET_CFLAGS += "-fprofile-arcs -ftest-coverage"
TARGET_LDFLAGS += "-lgcov -fprofile-arcs -ftest-coverage"

仍然,我收到 glibc 错误。

请找到配置日志文件的链接:https://drive.google.com/file/d/14tiQJ8JIFE_tDWt3H9tS8zBBQROcZDNa/view

即使在 conf/local.conf 中添加以下行后它也不起作用:

EXTRA_OECONF = "libc_cv_ctors_header=yes"

连我都试过了

EXTRA_OECONF_append = "libc_cv_ctors_header=yes"

请找到编译过程中生成的配置日志文件:https://drive.google.com/open?id=1kxTu8pt7h_9ty55OywP9Ilmmp04T61Rr

那么,如何解决这个错误?


日志文件错误点

poky-linux/gcc/i586-poky-linux/8.2.0/ld: /tmp/ccxetEc1.o: in function    `_GLOBAL__sub_D_00100_1__start':
conftest.c:(.text.exit+0x40): undefined reference to `__gcov_exit'<br>
collect2: error: ld returned 1 exit status<br>
configure:5682: $? = 1<br>
configure:5702: error: missing __attribute__ ((constructor)) support??

最佳答案

您正尝试在 CFLAGS 中使用 -fprofile-arcs -ftest-coverage 构建 glibc。这是行不通的。您看到的错误是这些不正确的编译器标志造成的。

分析 glibc 需要对整个库进行相当大的更改,并且需要通过使用 --enable-profile(这不是默认设置)进行构建来创建。

关于linux - 未定义对 `__gcov_exit' 的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54418831/

相关文章:

c - PulseAudio API - 无麦克风信号

gcc - 为什么 GCC 在 64 位上会丢弃帧指针?

ubuntu下编译头文件。我在终端中输入什么?

linux - 使用 LDFLAGS ="-static"构建 screen

linux - 进程未初始化

linux - Shell脚本,失败则停止运行

linux - 设置 stty 参数

linux - Nasm - 符号 `printf' 导致 R_X86_64_PC32 重定位溢出

locking - glibc 中的 flock() 与 fcntl() 语义

linux - 旧版链接器(使用 libc5)在 Linux 内核 2.6.25 上失败