我下载了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:所有警告都被视为错误
答案 0 :(得分:2)
elfutils错误地使用htobe64
,它不在任何标准中,仅在glibc和BSD的子集中可用。
由于你使用GCC,你可以使用Ulf Hermann的补丁来解决这个问题:
它基于GCC内置函数添加了htobe64
的实现,因此当GCC用作编译器时它是可用的,与C库提供的无关。