By:
Ailson Jack
Date:
2016.02.29
个人博客:
www.only2fire.com
本文在我博客的地址是:
http://www.only2fire.com/archives/44.html
,排版更好,便于学习。
最近在编译Linux-2.6.33内核时出现错误,报出的错误的大致信息是:
elf_i386或elf_x86_64:没有那个文件或目录
,这里分享一下解决方法,方便遇到同样问题的朋友能够把问题解决。
编译Linux-2.6.33内核,在make menuconfig配置完之后(选的默认配置),然后
make
,过一段时间出现如下错误:
gcc: 错误: elf_i386:No such file or directory
make[2]: *** [arch/x86/vdso/vdso32-int80.so.dbg] 错误 1
make[1]: *** [arch/x86/vdso] 错误 2
make: *** [sub-make] 错误 2
我的编译结果如下图:
原因是gcc 4.6不再支持linker-style架构(我使用的是gcc 4.6.3)。
下面是解决方法:
确保当前路径是在内核目录中,然后执行命令:
vim arch/x86/vdso/Makefile
,在Makefile中搜索
elf_x86_64
,然后把”
-m elf_x86_64
” 替换为 “
-m64
“;接着在Makefile中搜索
elf_i386
,然后把”
-m elf_i386
” 替换为 “
-m32
“,保存退出,问题解决了。接着继续编译,就可以了。
我在编译Linux-2.6.33内核时遇到的另一个问题是:
重复的成员‘page’
,链接:
http://www.only2fire.com/archives/45.html
,大家可以看看。
如果编译过程中,还遇到什么问题,大家可以在网上搜索或者给我留言吧。
注:
转载请注明出处,谢谢!^_^