+ -
当前位置:首页 → 问答吧 → 求助 lfs 中内核编译make错误:make: *** [include/linux/version.h] Error 2

求助 lfs 中内核编译make错误:make: *** [include/linux/version.h] Error 2

时间:2007-12-12

来源:互联网

编译内核
make mrproper
make 出错

root:/sources/linux-2.6.16.38# make
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `set -e; echo ' CHK include/linux/version.h'; mkdir -p include/linux/; if [ `echo -n "2.6.16.38 .file null .ident GCC:(GNU)4.0.3 .section .note.GNU-stack,,@progbits" | wc -c ` -gt 64 ]; then echo '"2.6.16.38 .file null .ident GCC:(GNU)4.0.3 .section .note.GNU-stack,,@progbits" exceeds 64 characters' >&2; exit 1; fi; (echo \#define UTS_RELEASE \"2.6.16.38 .file null .ident GCC:(GNU)4.0.3 .section .note.GNU-stack,,@progbits\"; echo \#define LINUX_VERSION_CODE `expr 2 \\* 65536 + 6 \\* 256 + 16`; echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'; ) < /sources/linux-2.6.16.38/Makefile > include/linux/version.h.tmp; if [ -r include/linux/version.h ] && cmp -s include/linux/version.h include/linux/version.h.tmp; then rm -f include/linux/version.h.tmp; else echo ' UPD include/linux/version.h'; mv -f include/linux/version.h.tmp include/linux/version.h; fi'
make: *** [include/linux/version.h] Error 2

我的livecd是6.2.5,其中的linux packages是

linux-2.6.16.38.tar.bz 和 linux-2.6.16.27-utf8_input-1.patch
我自己下了linux-2.6.16.27.tar.bz

同样出现上面的错误,请问这个是什么问题

作者: jeffcy   发布时间: 2007-12-12

引用:
作者: jeffcy
编译内核
make mrproper
make 出错

root:/sources/linux-2.6.16.38# make
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `set -e; echo ' CHK include/linux/version.h'; mkdir -p include/linux/; if [ `echo -n "2.6.16.38 .file null .ident GCC:(GNU)4.0.3 .section .note.GNU-stack,,@progbits" | wc -c ` -gt 64 ]; then echo '"2.6.16.38 .file null .ident GCC:(GNU)4.0.3 .section .note.GNU-stack,,@progbits" exceeds 64 characters' >&2; exit 1; fi; (echo \#define UTS_RELEASE \"2.6.16.38 .file null .ident GCC:(GNU)4.0.3 .section .note.GNU-stack,,@progbits\"; echo \#define LINUX_VERSION_CODE `expr 2 \\* 65536 + 6 \\* 256 + 16`; echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'; ) < /sources/linux-2.6.16.38/Makefile > include/linux/version.h.tmp; if [ -r include/linux/version.h ] && cmp -s include/linux/version.h include/linux/version.h.tmp; then rm -f include/linux/version.h.tmp; else echo ' UPD include/linux/version.h'; mv -f include/linux/version.h.tmp include/linux/version.h; fi'
make: *** [include/linux/version.h] Error 2

我的livecd是6.2.5,其中的linux packages是

linux-2.6.16.38.tar.bz 和 linux-2.6.16.27-utf8_input-1.patch
我自己下了linux-2.6.16.27.tar.bz

同样出现上面的错误,请问这个是什么问题
make mrproper 之後就去 make 肯定是通不过的了!

手册是这样教你做的吗?

作者: d00m3d   发布时间: 2007-12-13

难道LZ没有进行make menuconfig吗???

作者: beyond1314   发布时间: 2007-12-16

我跟LZ是同样的问题!只不过第二次编译内核心
linux-2.6.16.38.tar.bz 和 linux-2.6.16.27-utf8_input-1.patch
然后make mrproper
make menuconfig
make
就出现上述情况

作者: daist   发布时间: 2007-12-18

内核是必须配置的,不论是是menuconfig, config还是xconfig,而且配置完后在内核源码树中有了include/linux/version.h再继续,不然在首次用到内核头文件的时候就会失败。

作者: sspipipipi   发布时间: 2007-12-20

引用:
作者: sspipipipi
内核是必须配置的,不论是是menuconfig, config还是xconfig,而且配置完后在内核源码树中有了include/linux/version.h再继续,不然在首次用到内核头文件的时候就会失败。
如何才能产生include/linux/version.h这个文件呢?我看了我的没有这个文件!

作者: dtlin   发布时间: 2007-12-26

引用:
作者: sspipipipi
内核是必须配置的,不论是是menuconfig, config还是xconfig,而且配置完后在内核源码树中有了include/linux/version.h再继续,不然在首次用到内核头文件的时候就会失败。
我的include/linux/version.h没有这个文件,编译不过去啊?怎样才能生成 这个文件的啊?
我的 内核是 2.6.16.27

作者: dtlin   发布时间: 2007-12-26

引用:
作者: daist
我跟LZ是同样的问题!只不过第二次编译内核心
linux-2.6.16.38.tar.bz 和 linux-2.6.16.27-utf8_input-1.patch
然后make mrproper
make menuconfig
make
就出现上述情况
也是这个版本和这个patch
第一次编译都好的,可是make menuconfig的时候选掉了一个东西。于是把目录删除,解压后重新再来,就有这个问题了。
猜测:好像是上次config的内容在什么地方保存了,结果这次config的时候就不做后面的动作了

作者: zlpasp   发布时间: 2007-12-27

干嘛"新版"内核打不对应版本的 patch?

别浪费时间了,干脆找个当前的最新版内核来装算了吧!

作者: d00m3d   发布时间: 2007-12-28