在cms.h文件中添加结构体变量后,编译总是报include文件编译错误,如下:
In file included from /.../public/include/cms_other.h:41:0,
from /.../public/include/linux/os_common.h:43,
from vlanctl_api.c:57:
/.../public/include/cms.h:508:4: error: unknown type name ‘UBOOL8’
/.../public/include/cms.h:509:4: error: unknown type name ‘UBOOL8’
from /.../public/include/linux/os_common.h:43,
from vlanctl_api.c:57:
/.../public/include/cms.h:508:4: error: unknown type name ‘UBOOL8’
/.../public/include/cms.h:509:4: error: unknown type name ‘UBOOL8’
问题真相:
cms.h中增加的变量有用到UBOOL8,其在os_common.h中的封装定义,
故
cms.h文件开头添加如下头文件引入:
#include "os_common.h"
os_common.h文件开头有添加引入头文件cms_other.h, 并在后面定义UBOOL8:
#include "cms_other.h"
....
....
typedef uint8_t UBOOL8;
cms_other.h文件中又有引入头文件cms.h:
#include "cms.h"
问题关键就在这里,该处循环重复引用的cms.h中的UBOOL8还未定义,所以导致编译不过。