LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2097|回复: 10

哪位高手 帮忙看下:LFS Linux-2.6.22.5 API Headers 出错

[复制链接]
发表于 2009-7-9 15:37:00 | 显示全部楼层 |阅读模式
lfs:/mnt/lfs/sources/linux-2.6.22.5$ make headers_check
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/basic/docproc
  HOSTCC  scripts/unifdef
scripts/unifdef.c:209: error: conflicting types for 'getline'
/usr/include/stdio.h:655: error: previous declaration of 'getline' was here
make[1]: *** [scripts/unifdef] Error 1
make: *** [headers_install] Error 2
附上:
scripts/unifdef.c: 209:static Linetype   getline(void);
/usr/include/stdio.h:655:extern _IO_ssize_t getline (char **__restrict __lineptr,
                            size_t *__restrict __n,
                            FILE *__restrict __stream) __wur;

在fedora 11下做的,重复做了几次都是出现这个错 前面步骤都是一步一步来的没错 俄。谢谢哪位高手 帮下。
 楼主| 发表于 2009-7-10 19:56:04 | 显示全部楼层
我怀疑是不是fedora 11的问题 ,因为我在fedora 10 下做没问题。
而且因为只是lfs的前面的几步,我反复认真做了几遍,都是这个编译出错。有哪位大哥在fc 11下编译通过这步的吗?
如果有空,希望你们能试一下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-10 20:13:06 | 显示全部楼层
我基本上可以肯定于fc11有关,fc10 没错我实验过 。
但不知道怎么改
版主能解决下 么?
回复 支持 反对

使用道具 举报

发表于 2009-7-16 18:21:57 | 显示全部楼层
我的也是这样,看来是Fedora11 的问题啊
回复 支持 反对

使用道具 举报

发表于 2009-7-21 21:44:16 | 显示全部楼层
楼主在做哪版的 LFS?

如果用 F10 或以上做宿主,LFS 系统的版本最好是 6.3 或以上
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-23 14:57:26 | 显示全部楼层
版本是6.3的,fc11
回复 支持 反对

使用道具 举报

发表于 2009-7-23 23:14:06 | 显示全部楼层
please try rename all getline to  get_line or something like in scripts/unifdef.c,
there is a patch, but i can not find it now. it may help.
回复 支持 反对

使用道具 举报

发表于 2009-7-25 04:04:10 | 显示全部楼层
必要时可试换个内核的版本看看
回复 支持 反对

使用道具 举报

发表于 2009-7-25 13:34:44 | 显示全部楼层
fedora 11 使用的是 gcc-4.4,相应的您应使用最新的内核,或给系统 gcc 降级。

您不读手册前几章么?
回复 支持 反对

使用道具 举报

发表于 2009-9-24 16:44:50 | 显示全部楼层
Post by wuse;2004780
lfs:/mnt/lfs/sources/linux-2.6.22.5$ make headers_check
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/basic/docproc
  HOSTCC  scripts/unifdef
scripts/unifdef.c:209: error: conflicting types for 'getline'
/usr/include/stdio.h:655: error: previous declaration of 'getline' was here
make[1]: *** [scripts/unifdef] Error 1
make: *** [headers_install] Error 2
附上:
scripts/unifdef.c: 209:static Linetype   getline(void);
/usr/include/stdio.h:655:extern _IO_ssize_t getline (char **__restrict __lineptr,
                            size_t *__restrict __n,
                            FILE *__restrict __stream) __wur;

在fedora 11下做的,重复做了几次都是出现这个错 前面步骤都是一步一步来的没错 俄。谢谢哪位高手 帮下。


这个只需要
[root@mydream-arch linux-2.6.27.4]# vi /usr/include/stdio.h
在第651行中把getline改成get_line即可,改完后就是下面这个样子

extern _IO_ssize_t get_line (char **__restrict __lineptr,
                            size_t *__restrict __n,
                            FILE *__restrict __stream) __wur;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表