elfutils编译错误implicit-function-declaration

时间:2017-11-15 23:33:10

标签: c++ c gcc makefile

我下载了elfutils 0.170和0.169,但由于隐式函数声明,无法使用gcc编译其中任何一个。我在elfutils makefile中找不到任何指定-Werror或-Werror = implicit-function-declaration的地方。有没有想过修复这个编译错误?

https://sourceware.org/elfutils/ftp/0.170/ 我的步骤

1:bzip2 -d elfutils-0.170.tar.bz2 2:tar -xvf elfutils-0.170.tar 3:./configure
4:制作

然后出现以下错误。 elf_compress_gnu.c:在函数' elf_compress_gnu': elf_compress_gnu.c:114:28:错误:隐含的函数声明' htobe64' [-Werror =隐函数声明]        uint64_t be64_size = htobe64(orig_size);                             ^ elf_compress_gnu.c:163:15:错误:隐含的函数声明' be64toh' [-Werror =隐函数声明]        gsize = be64toh(gsize);                ^ cc1:所有警告都被视为错误

1 个答案:

答案 0 :(得分:2)

elfutils错误地使用htobe64,它不在任何标准中,仅在glibc和BSD的子集中可用。

由于你使用GCC,你可以使用Ulf Hermann的补丁来解决这个问题:

它基于GCC内置函数添加了htobe64的实现,因此当GCC用作编译器时它是可用的,与C库提供的无关。