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,大家可以看看。
如果编译过程中,还遇到什么问题,大家可以在网上搜索或者给我留言吧。
注:转载请注明出处,谢谢!^_^