编译报错:<command-line>: error: expected identifier or ‘(‘ before numeric constant

今天在tina平台适配R528 D1方案时,tina_multimedia编译报以下很奇怪的报错,之前从来没有遇到过,特此记录一下。
在这里插入图片描述
看到这个编译报错,完全没有有用信息,既不知道哪一行,也不知道出错原因。后来在网上查阅了资料,大部分的解释是:枚举冲突,枚举类型中的某个变量被重复定义了。 可是没有给出具体哪个枚举类型哪个变量,实在是不好找到问题点。

排查步骤如下:

第一,同样的代码R528 riscv方案是能够正常编译通过的,排除工具链的影响。

第二,怀疑是否最近其他人提交的一些关于D1方案的代码,引入了冲突。尝试revert掉最近的提交,问题并未解决。

第三,转换思路,排查是否openssl包引入的错误。进入目录tina/package/libs/openssl使用mm -B编译,没有报错。
然后使用tina_multimedia的编译配置信息来编译openssl包,发现了问题点,如下图所示:
在这里插入图片描述
从这次的报错信息,加上之前网上查找到的解释,大概猜测是由于编译选项中引入了“-Dd1”lhash.h中的一些宏定义冲突。所以尝试将上面的编译配置去掉“-Dd1”进行验证,编译通过。由此可以得出结论是tina_multimedia的Makefile引入了不当的编译选项,最后发现是定义的TINA_CHIP_TYPE导致的。
在这里插入图片描述
在这里插入图片描述

猜你喜欢

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