编译内核make: *** [.tmp_vmlinux1] 错误 1
编译工具cross-3.3.2.tar.bz2解压到/usr/loacal/arm/3.3.2/bin ,linux内核linux-2.6.16.5.tar.gz 解压后修改主makefile
修改如下:
#ARCH ?= $(SUBARCH)
#CROSS_COMPILE ?=
ARCH = arm
CROSS_COMPILE =/usr/local/arm/3.3.2/bin/arm-linux-
[root@122 linux-2.6.16.5]# make menuconfig //此处选择默认
.
.
[root@122 linux-2.6.16.5]# make zImage
.
.
CC lib/vsprintf.o
AR lib/lib.a
GEN .version
CHK include/linux/compile.h
dnsdomainname: 没有与名字关联的地址
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
/usr/local/arm/3.3.2/bin/arm-linux-ld:arch/arm/kernel/vmlinux.lds:1932: parse error
make: *** [.tmp_vmlinux1] 错误 1
找到arch/arm/kernel/vmlinux.lds文件注释掉1932行,如下:
/*
*ASSERT((__proc_info_end - __proc_info_begin), "missing CPU *support"
*ASSERT((__arch_info_end - __arch_info_begin), "no machine *record defined"
*/
然后重新编译结果如下:
[root@122 linux-2.6.16.5]# make zImage
CHK include/linux/version.h
make[1]: “include/asm-arm/mach-types.h”是最新的。
CHK include/linux/compile.h
dnsdomainname: 没有与名字关联的地址
CHK usr/initramfs_list
GEN .version
CHK include/linux/compile.h
dnsdomainname: 没有与名字关联的地址
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
drivers/built-in.o(.text+0x33e24): In function `drm_lock_take':
drivers/char/drm/drm_lock.c:208: undefined reference to `cmpxchg'
drivers/built-in.o(.text+0x33ea: In function `drm_lock_transfer':
drivers/char/drm/drm_lock.c:248: undefined reference to `cmpxchg'
drivers/built-in.o(.text+0x33eec): In function `drm_lock_free':
drivers/char/drm/drm_lock.c:273: undefined reference to `cmpxchg'
drivers/built-in.o(.text+0x33f9c): In function `drm_notifier':
drivers/char/drm/drm_lock.c:310: undefined reference to `cmpxchg'
make: *** [.tmp_vmlinux1] 错误 1
[root@122 linux-2.6.16.5]#
郁闷! 编译不通过这是怎么回事,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
还是这样,安照别人的方法一步一步这样做的,就是编译不通过,不知道别人是怎么编译的file:///usr/share/doc/HTML/index-zh_CN.html
若编译内核出现如下情况
LD .tmp_vmlinux1
arm-linux-ld:arch/arm/kernel/vmlinux.lds:1439: parse error
make: *** [.tmp_vmlinux1] Error 1
解决方法:修改arch/arm/kernel/vmlinux.lds
[root@localhost linux-2.6.14]$ vi arch/arm/kernel/vmlinux.lds
将文件尾2条的ASSERT注释掉
/* ASSERT((__proc_info_end - __proc_info_begin), "missing CPU support") */
/* ASSERT((__arch_info_end - __arch_info_begin), "no machine record defined") */
然后重新make即可
楼上正解!
编译器版本太低,换个高一点的版本
装个3.4.1的试试。
http://xiyang.org/pub/cross-3.4.1.tar.bz2