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 文件中其他地方是否存在类似的错误。
Marlin 编译错误:  缺少二元运算符 (missing binary operator)

原文地址: https://www.cveoy.top/t/topic/bHVy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录