Include檔案易犯編譯錯誤

wuruixn發表於2020-04-07

在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’


問題真相:
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還未定義,所以導致編譯不過。




相關文章