重复的成员'page'错误的解决方法
<p style="text-indent: 2em;">在编译Linux-2.6.33内核时,出现的了一个错误就是:<span style="color: rgb(255, 0, 0);">重复的成员‘page’</span>,这个是由于gcc的版本较高造成的。之前编译Linux-2.6.33内核出现过的另一个问题,该问题在文章《<a href="http://www.only2fire.com/archives/44.html" target="_blank"><span style="color: rgb(255, 0, 0);">elf_i386或elf_x86_64:没有那个文件或目录 解决方法</span></a><span style="color: rgb(0, 0, 0);">》中进行了描述</span>,大家可以自行点击查看,如果遇到了也知道如何解决这个问题。<br/></p><p style="text-indent: 2em;">重复的成员‘page,编译出的详细错误信息如下:<br/><span style="color: rgb(255, 0, 0);">In file included from drivers/net/igbvf/ethtool.c:36:0:<br/>drivers/net/igbvf/igbvf.h: At top level:<br/>drivers/net/igbvf/igbvf.h:129:15: error: duplicate member ‘page’<br/>make[3]: *** [drivers/net/igbvf/ethtool.o] Error 1<br/>make[2]: *** [drivers/net/igbvf] Error 2<br/>make[1]: *** [drivers/net] Error 2<br/>make: *** [drivers] Error 2</span><br/></p><p style="text-indent: 2em;">我的编译出错信息,截图如下:</p><p style="text-align:center"><img src="/uploads/AilsonJack/2018.08.24/1535102132887503.png" onclick="preview_image('/uploads/AilsonJack/2018.08.24/1535102132887503.png')"/></p><p style="text-indent: 2em;">解决办法:</p><p class="artical_littlestyle1">1、方法一</p><p style="text-indent: 2em;">根据linux社区的建议,此错误是由于gcc版本与内核版本的冲突导致的。他们的建议是更换新版本的内核,但是某些特殊条件下,我们不能更换内核版本,于是我们修改内核代码适应当前的编译器(即接下来的方法二)。</p><p class="artical_littlestyle2">2、方法二</p><p style="text-indent: 2em;">a、按照错误的指示,错误的代码是在<span style="color: rgb(255, 0, 0);">drivers/net/igbvf/igbvf.h</span>文件的第129行。<br/></p><p style="text-indent: 2em;">b、打开文件,看129行,代码为:<span style="color: rgb(255, 0, 0);">struct page *page;</span>再往上看,第124行,也有<span style="color: rgb(255, 0, 0);">struct page *page;</span>这行代码,这个结构定义在内部的一个结构体中。就是他的名字与129行的重复了,而4.6.3的编译器不支持这种方式的定义,我们修改129行的代码为<span style="color: rgb(255, 0, 0);">struct page *pagep;</span>保存退出。<br/></p><p style="text-indent: 2em;">接下来重新编译,编译通过。<br/></p><p style="text-indent: 2em;">如果编译过程中,还遇到什么问题,大家可以在网上搜索或者给我留言吧。<br/></p>
你可能也喜欢:
暂无评论,要不要来个沙发
发表评论
JLink V9掉固件修复(灯不亮) 3Zephyr笔记2 - 在STM32F429上运行HelloWorld 2计算NandFlash要传入的行地址和列地址 1Linux MMC子系统 - 6.eMMC 5.1工作模式-设备识别模式 0Linux MMC子系统 - 5.eMMC 5.1工作模式-引导模式 0Linux MMC子系统 - 4.eMMC 5.1常用命令说明(2) 0
标签云
Linux嵌入式实用技巧ARM内核学习问题集合CC++编程语言阅读笔记汇编Linux内核完全注释Windows驱动开发计算机基础ARM11ARMv7-ASTM32IDESublimeLinux内核学习eMMCMMC子系统Ubuntu操作系统OfficeVMWareAPUEgccRTOS中断漫游世界随笔感悟开发工具软件应用编程VsCodearmccarmclang编译器ZephyrSPIJLink网卡驱动安装各种芯片库函数NFSμCOS内核sambaFlashUnix命令与脚本输入法Linux内核设计与实现gitRIFFWAVJATGFTPar8161安装centos有线上网μCGUI字库工程建立右键菜单网络文件系统Firefox百度NTFS文件系统CodeBlocksCentOS数据结构算法PhotoShop51KeilQTUltraEditscanfglibc宏定义UIDGID优先级娱乐天地SourceInsight磁盘扇区总线I2CPDFBComparePythonI2SFPUMakefileSWDCPUARP软件推荐FileZilla