M2 MacBook上Eclipse误标记C++字符串字面量为无效参数
强制CDT用GCC解析器替代Clang
打开项目属性,进入C/C++ General > Preprocessor Include Paths, Macros etc.,切换到Providers标签页,勾选GCC Built-in Compiler Settings并拖到优先级最上方,取消勾选Clang Built-in Compiler Settings(如果存在),点击Apply and Close后右键项目选择Index > Rebuild。调整代码分析规则
进入项目属性的C/C++ General > Code Analysis,找到Invalid arguments检查项并点击Edit,在选项中确认开启了std::string与const char*隐式转换的识别;也可以先禁用该检查再重新启用,重置规则逻辑。指定GCC编译器路径
打开Preferences > C/C++ > Build > Settings,在Toolchains里选择GCC for AArch64并点击Edit,将Compiler command指向你安装的GNU g++路径(比如/usr/local/bin/g++),应用设置后重建索引。检查索引配置
右键项目选择Properties > C/C++ General > Indexer,确认未将<string>这类核心头文件排除在索引外,勾选Index all header variants选项提升索引完整性。
核心原因是M2架构下Clang解析器对std::string隐式转换的处理逻辑和实际编译行为不一致,切换到GCC解析器能更好匹配C++标准的常规处理逻辑。
内容的提问来源于stack exchange,提问作者Danny

