编译linux内核时,make出错是什么原因

在make menuconfig配置完之后(选的默认配置),然后就make出现如下错误:
root@org:/usr/src/linux-2.6.32.27# make
CHK include/linux/version.h
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86
CALL scripts/checksyscalls.sh
CHK include/linux/compile.h
VDSO arch/x86/vdso/vdso32-int80.so.dbg
gcc: 错误: elf_i386:没有那个文件或目录
make[2]: *** [arch/x86/vdso/vdso32-int80.so.dbg] 错误 1
make[1]: *** [arch/x86/vdso] 错误 2
make: *** [arch/x86] 错误 2
这个elf_i386是什么文件或者目录,应该在什么位置

第1个回答  推荐于2017-11-24
正确的步骤是;
yum -y install make automake gcc g++ ncurses ncurses-dev ncurses-devel fakeroot wget bzip2 make patch ftp
cp /boot/config-2.6.18-92.el5 .config
关闭Selinux

vi /etc/sysconfig/selinux
SELINUX=disabled

打IMQ补丁:
$patch -p1 < ../linux-2.6.25-imq5.diff
$make menuconfig

驱动模块
IMQ (intermediate queueing device) support (IMQ)
Location:
-> Device Drivers
-> Networking support
-> Network device support (NETDEVICES)
-> IMQ (intermediate queueing device) support (IMQ)

2.2编译并安装新内核
make menuconfig

make
make modules
make modules_install
make install

mkinitrd /boot/initrd_2.6.30.img 2.6.30 根据内核版本和指定参数生成映像文件
cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.30
cp /usr/src/linux-2.6.30/System.map /boot/System.map-2.6.30追问

编译前面的那写步骤不用也可以吧!

追答

追问

解决了!原因是 gcc 4.6 不再支持 linker-style 架构。讲 arch/x86/vdso/Makefile 中,
将以 VDSO_LDFLAGS_vdso.lds 开头所在行的 "-m elf_x86_64" 替换为 "-m64"。
将以 VDSO_LDFLAGS_vdso32.lds 开头所在行的 "-m elf_x86" 替换为 "-m32"。
谢谢喽!

本回答被提问者采纳
第2个回答  2011-12-05
你没安装gcc
要把gcc相关组件全部装上
第3个回答  2011-12-01
可能是你的源码有问题吧
相似回答