我有一个C代码,我在第三行收到错误:
struct in6_pktinfo *ptr;
ptr = (struct in6_pktinfo *) CMSG_DATA (cmsgptr);
*ifindex = ptr->ipi6_ifindex;
ERROR: dereferrencing pointer to incomplete type
如果gcc 4.6/4.7
使用centos / ubuntu发行版,但不是gcc 2.96
现在,我如何确定此问题是由gcc引起的?
答案 0 :(得分:2)
gcc 2.96真的很旧,你不应该依赖它所说的。
如果struct
的定义在include文件中,由于#ifdef
依赖于编译器版本而被包含在不同的顺序中,那么这样的事情就会发生。所以你可能应该检查包含哪些订单。 Doxygen可能是一个有价值的工具,可视化项目的包含结构。