GCC-4.6.3编译linux2.6.32.12内核出现“重复的成员‘page’”错误的解决方法

使用gcc4.6.3编译linux2.6.32.12内核出现错误如下:

         In file included from drivers/net/igbvf/ethtool.c:36:0:

         drivers/net/igbvf/igbvf.h: 在文件作用域:

         drivers/net/igbvf/igbvf.h:128:15: 错误: 重复的成员‘page’

         make[4]: *** [drivers/net/igbvf/ethtool.o] 错误 1

         make[3]: *** [drivers/net/igbvf] 错误 2

         make[2]: *** [drivers/net] 错误 2

         make[1]: *** [drivers] 错误 2

         make[1]:正在离开目录 `/usr/src/linux-2.6.32.2'

         make: *** [debian/stamp/build/kernel] 错误 2

 

解决方法:

1. 根据linux社区的建议,此错误是由于gcc版本与内核版本的冲突导致的。他们的建议是更换新版本的内核,但是某些特殊条件下,我们不能更换内核版本,于是我们修改内核代码适应当前的编译器。

2. 按照错误的指示,错误的代码是在drivers/net/igbvf/igbvf.h文件的第128行。

3. 打开文件,看128行,代码为:struct page *page;再往上看,第123行,也有struct page *page这行代码,这个结构定义在内部的一个结构体中。就是他的名字与128行的重复了,而4.6.3的编译器对不支持这种方式的定义,我们修改128行的代码为struct page *pagep;保存退出;

4. 重新编译,编译通过。

转载于:https://www.cnblogs.com/crazywangzx/p/3505289.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值