在将所有代码移动到新的M2 MacBook后,我的旧Eclipse 4.17(2020-09)现在将字符串字面量参数标记为“无效参数”。
我已经更新到最新的Eclipse 2023-06/AArch 64”,安装了CDT,PDT PHP工具和Wild Web。
C++中字符串的问题仍然存在。我读了大量的旧帖子(比如这篇),并尝试重建索引,刷新所有文件,并将发现设置为-std=c++11
per 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设置文件和文件夹。我试过几种方法,但都没有成功:
- File > New Project > General > Project创建一个没有检测到C/C功能的空白项目。尝试文件>新建>转换为C项目得到语法突出显示与相同的错误。
- 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来验证符号。没有喜悦。)
1条答案
按热度按时间evrscar21#
经过很长一段时间的摆弄,我得到了它的工作:
1.创建新的空项目
1.将项目转换为C++
1.将文件和文件夹逐个复制到新项目中
1.将这些包含路径添加到“C路径和符号”部分:
/Library/Developer/CommandLineTools/SDK/MacOSX 13.3.sdk/usr/include /Library/Developer/CommandLineTools/usr/include/c/v1/