编译报错: error: expected ‘=‘, ‘,‘, ‘;‘, ‘asm‘ or ‘__attribute__‘ before *‘ token

今天在melis SDK中添加了VE驱动的适配层代码,在编译的过程中报以下错误:

In file included from ./emodules/mod_cedar/toolkit/toolkit.h:29,
                 from ./emodules/mod_cedar/drivers/drv_video/vdrv_common_cfg.h:23,
                 from emodules/mod_cedar/drivers/drv_video/libcedarc/adapter/adapter_cedar_melis/vdecoder_oal.c:21:
./emodules/mod_cedar/toolkit/pthread_mutex.h:23:55: error: expected '=', ',', ';', 'asm' or '__attribute__' before *' token
   23 | #define  pthread_mutex_t                __krnl_event_t*
      |                                                       ^                                               ^

在此之前该头文件编译是没有报错的,一通搜索之后发现网上分析的出错原因多种多样,下面将对我的搜索结果进行整理总结:

1. 语法错误:头文件的某个函数声明没有以 “;” 结尾 或 struct 的结尾忘记得加 “;”。
2. 结构体的初始化代码放在函数外,结构体初始化是可执行代码,必须依赖于函数执行,不能在函数外执行。
3. include 前忘记了加上“#”。
4. 某些关键字书写错误,如“void”(我把它写成viod)。

按照搜索的结果检查了一下代码,并未能解决我的问题,后来多方尝试,发现是 头文件的顺序 导致了该错误,将我后续添加的几个头文件放到前面,问题解决,虽然还搞不太懂问题原因,但是先记录一下,后面再进行研究。

猜你喜欢

转载自blog.csdn.net/houxiaoni01/article/details/108790607