求救 gcc 编译 error: ‘’ has incomplete type

wennjianwzz 2011-08-01 09:26:31
有一个工程,在GCC 4.1.2下编译没有问题,在gcc 4.3.2下面编译救出现 error: ‘<anonymous>’ has incomplete type这样的错误。该怎么解决呢?我尝试着将GCC 降级,但是可能由于机器位数的原因,出现suffix or operands invalid for `push`的错误。
...全文
1841 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
freetstar 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wennjianwzz 的回复:]

我已经解决了,我把我的解决方法在这里分享一下,谢谢各位的帮助。

error: ‘<anonymous>’ has incomplete type,这个确实是编译器的问题,也可以说是代码的问题,但是代码不是我写的,所以我也没法改。

suffix or operands invalid for `push`,这个是我将GCC降级之后,但是内核啥的都是64bits的,但是编译器啥的都是32……
[/Quote]
感谢分享
wennjianwzz 2011-08-02
  • 打赏
  • 举报
回复
我已经解决了,我把我的解决方法在这里分享一下,谢谢各位的帮助。

error: ‘<anonymous>’ has incomplete type,这个确实是编译器的问题,也可以说是代码的问题,但是代码不是我写的,所以我也没法改。

suffix or operands invalid for `push`,这个是我将GCC降级之后,但是内核啥的都是64bits的,但是编译器啥的都是32位,但是所以出现这个错误,估计代码中嵌入了汇编代码。在Makefile中给GCC加上-Wa,--32选项,-Wa将选项传递给汇编器,--32告诉汇编器进行32位汇编。这样解决了问题。

freetstar 2011-08-01
  • 打赏
  • 举报
回复
可能是代码不规范引起的,去源码理kankan
http://gcc.gnu.org/ml/gcc-bugs/2007-08/msg01205.html
jiahehao 2011-08-01
  • 打赏
  • 举报
回复
extern "C" ,你加这句没有?
Kyph 2011-08-01
  • 打赏
  • 举报
回复
应该是代码本身的问题;好好查看代码。
xunxun 2011-08-01
  • 打赏
  • 举报
回复
也可能是编译器本身的bug
试下别的较高版本的
shenghuiping2001 2011-08-01
  • 打赏
  • 举报
回复
两种环境的编译 取得env 不一样,我觉得可以把原来的编译好的打包,一起放到新的环境中,试试编译一次,强制设定编译的地方,看看,他是否还去其他地方去找包。
java -jar Xboot (这个参数),呵呵,可以试试。
wennjianwzz 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jiahehao 的回复:]

extern "C" ,你加这句没有?
[/Quote]
加了的
jiahehao 2011-08-01
  • 打赏
  • 举报
回复
Stop programming in C using a C++ compiler.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33101

4,465

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧