Eclipse将C++字符串标记为“Invalid Argument”

rsl1atfo  于 2023-10-18  发布在  Eclipse
关注(0)|答案(1)|浏览(125)

在将所有代码移动到新的M2 MacBook后,我的旧Eclipse 4.17(2020-09)现在将字符串字面量参数标记为“无效参数”。
我已经更新到最新的Eclipse 2023-06/AArch 64”,安装了CDT,PDT PHP工具和Wild Web。
C++中字符串的问题仍然存在。我读了大量的旧帖子(比如这篇),并尝试重建索引,刷新所有文件,并将发现设置为-std=c++11per this post
例如,给定下面的简单程序,对test("bobo")的调用被标记为无效参数,即使std::string被桥接到文字字符串并且程序编译没有错误。
有什么建议吗?

#include <string>

void test(const std::string &s)
{ }

int main(int argc, char **argv)
{
    std::string s;
    test(s);       // (1) OK
    test("bobo");  // (2) Eclipse says "Invalid Argument"
    test(12);      // (3) Eclipse says "Invalid Argument" (which is expected)
}

编辑我

majixin的建议下,我删除了所有隐藏的eclipse设置文件和文件夹。我试过几种方法,但都没有成功:

  1. File > New Project > General > Project创建一个没有检测到C/C功能的空白项目。尝试文件>新建>转换为C项目得到语法突出显示与相同的错误。
  2. File > New Makefile Project with existing code:同样的问题:第2行和第3行显示无效参数
    1.文件>新建C/C++项目(从弹出窗口中选择“Makefile项目”)
    解析器日志文件显示:
Unresolved names:
   Attempt to use symbol failed: test in file /Users/danny/Programming/eclipseWS/Dummy/junk.cpp:24
   Attempt to use symbol failed: test in file /Users/danny/Programming/eclipseWS/Dummy/junk.cpp:25

(我也试过通过homebrew安装GNU g++,但查看索引器日志文件,看起来Eclipse仍然使用clang来验证符号。没有喜悦。)

evrscar2

evrscar21#

经过很长一段时间的摆弄,我得到了它的工作:
1.创建新的空项目
1.将项目转换为C++
1.将文件和文件夹逐个复制到新项目中
1.将这些包含路径添加到“C路径和符号”部分:
/Library/Developer/CommandLineTools/SDK/MacOSX 13.3.sdk/usr/include /Library/Developer/CommandLineTools/usr/include/c
/v1/

相关问题