最近用KEIL5编译一个工程的时候,发现一模一样的工程在台式机上就能编译通过,在我的笔记本里就有一个错误,编译不通过,错误描述如下:
error:#70:incomplete type is not allowed FILE __stdout;
这个错误推测是结构体定义有问题。顺着错误找到FILE __stdout;这行代码,右键导航到FILE定义,发现是在标准库stdio.h里面,FILE结构体定义如下:
typedef struct __FILE FILE;
再右键,导航到结构体__FILE的定义,没找到。果然是结构体没有定义完整。
问题找到了,将typedef struct __FILE FILE;这行代码修改为typedef struct __FILE{ } FILE;
再次编译,通过。