Marlin 编译错误: 缺少二元运算符 (missing binary operator)
Marlin 编译错误: 缺少二元运算符 (missing binary operator)
你在编译 Marlin 固件时遇到了以下错误信息吗?
e:\3d\xb4\xf2ӡ\xbb\xfa\kp3s\xc2\xed\xc1\xd6\marlin-2.1.2.1\marlin\configuration.h:3204:15: error: missing binary operator before token '('
3204 | #if DGUS_UI_IS(MKS)
| ^
e:\3d\xb4\xf2ӡ\xbb\xfa\kp3s\xc2\xed\xc1\xd6\marlin-2.1.2.1\marlin\configuration.h:3206:17: error: missing binary operator before token '('
3206 | #elif DGUS_UI_IS(IA_CREALITY)
| ^
Error: Failed to parse Marlin features. See previous error messages.
这个错误通常是由于在 configuration.h 文件的 #if 和 #elif 预处理指令中缺少二元运算符导致的。
解决方法
你需要检查你的 configuration.h 文件,特别是第 3204 和 3206 行,确保在 #if 和 #elif 指令中使用了正确的二元运算符来比较宏定义。
以下是一些常见的解决方法:
1. 使用等号运算符 (==) 检查宏定义是否等于某个值:
#if DGUS_UI_IS == MKS
#define USE_MKS_GREEN_UI
#elif DGUS_UI_IS == IA_CREALITY
//...
#endif
2. 使用字符串比较函数 strcmp() 检查宏定义是否包含某个值:
#if strcmp(DGUS_UI_IS, 'MKS') == 0
#define USE_MKS_GREEN_UI
#elif strcmp(DGUS_UI_IS, 'IA_CREALITY') == 0
//...
#endif
请注意:
- 以上只是一些示例,实际的解决方法可能因你的代码而异。
- 确保你理解了预处理指令的工作原理,以及如何在其中使用二元运算符。
- 如果上述修改仍然无效,请仔细检查你的代码,尤其是
configuration.h文件中其他地方是否存在类似的错误。
原文地址: https://www.cveoy.top/t/topic/bHVy 著作权归作者所有。请勿转载和采集!