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

  • 相关阅读:
    OO第三单元博客作业
    OO第二单元博客作业
    OO第一单元博客作业
    OO第四单元总结
    OO第三次作业总结
    OO第二单元作业总结
    OO第一单元作业总结
    面向对象总结博客
    面向对象第三单元总结博客
    面向对象第二单元总结博客
  • 原文地址:https://www.cnblogs.com/crazywangzx/p/3505289.html
Copyright © 2011-2022 走看看