我有一台Windows8机器,mingw安装在c:\mingw
Eclipse 确实成功编译了程序,但它认为包含错误的行在编译时没有问题。 Eclipse 本身没有找到库。
当我第一次在 Eclipse 中构建一个安装了 CDT 组件的项目时,它在每个 #include 和使用对象的每一行上显示错误。
Example:
#include <iostream>
using namespace std;
int main() {
cout << "hello\n";
}
上面的代码显示了 include、using 和 cout 属性 C++/通用预处理器包括
然后在“提供程序”选项卡上,我可以选中“CDT 构建输出解析器”并修复下面第一个答案所描述的错误,我正在检查该答案。但这仅适用于项目。我每次都必须这样做。每次构建新项目时,如何让 Eclipse 简单地接受标准 C++,而无需重新配置每个项目?
我已经能够通过进入项目设置并添加目录来阻止包含错误:
c:/bin/mingw/lib/gcc/include
...
这会在使用对象的行上留下错误。
#include <iostream>
#include <string>
#include <regex>
using namespace std;
int main() {
string s = "this is a test.";
regex e("est");
smatch m;
带有正则表达式的行仍然显示错误:“无法解析类型正则表达式”
即使代码编译并且正则表达式包含被识别。
此外,在另一台运行 Windows 8.1 并安装了 Mingw 的机器上,Eclipse 将无法调试。有没有关于如何将 Eclipse CDT 连接到库的文档?
虽然您显然在 Eclipse 中使用 gcc 成功编译了代码,但 Eclipse 有自己的内置 C++ 解析器,您需要单独让它知道您正在使用 C++11。
Add the -std=c++11
的选项CDT GCC Builtin Compiler Settings
under Project propierties -> C/C++ General -> Preprocessor Include Paths
,编译器规范应类似于以下内容:
${COMMAND} -E -P -v -dD ${INPUTS} -std=c++11
UPDATE.请阅读为 C/C++ 索引器设置包含路径和宏 http://www.eclipse.org/community/eclipse_newsletter/2013/october/article4.php了解受支持工具链的包含路径和预处理器符号(又名扫描仪发现)的 CDT 自动发现如何适用于您。
要点是 CDT 使用Language Settings Providers
查找包含路径和预处理器符号。和Language Settings Providers
可以在项目属性页面上配置"Preprocessor Include Paths, Macros, etc."
一旦有了正确的设置,您就可以将它们设为模板工作区,然后只需为新项目复制模板工作区,或者使用一个仅设置相关设置的脚本。另请参阅:设置所有 Eclipse 工作区的首选项 https://stackoverflow.com/questions/7933882/setting-preferences-for-all-eclipse-workspaces.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)