• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
冰雪王爵.obj的个人空间
博客园    首页    新随笔    联系   管理    订阅  订阅

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. 重新编译,编译通过。

我们的荣耀不是在于永远成功,而是在于在失败和绝望时能找到重新站起来的希望,勇敢的面对困难并战胜困难……
posted @ 2014-01-04 20:52  冰雪王爵.obj  阅读(1810)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3