zoukankan      html  css  js  c++  java
  • 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. 重新编译,编译通过。

  • 相关阅读:
    Linux 文件管理篇(一 档案读写)
    Linux 任务管理篇(一)
    Mysql 视图简介
    MySql 使用正则表达式查询
    mysql 插入、更新与删除数据
    mysql 多表查询
    mysql 单表查询
    Java抽象类与接口
    maven小结
    shiro 进行权限管理 —— 使用BigInteger进行权限计算获取菜单
  • 原文地址:https://www.cnblogs.com/crazywangzx/p/3505289.html
Copyright © 2011-2022 走看看