我在c:\ mingw中安装了mingw的Windows8机器 Eclipse确实成功编译了程序,但它认为行包含编译时很好的错误。 Eclipse没有找到库本身。
当我第一次使用CDT组件安装在eclipse中构建项目时,它会在每个#include和使用对象的每一行上显示错误。
示例:
#include <iostream>
using namespace std;
int main() {
cout << "hello\n";
}
以上代码显示了包含,使用和cout&lt;&lt;线。 我可以点击以下消除错误: project-&gt; properties C ++ / General Preprocessor Include 然后在提供者选项卡上,我可以检查&#34; CDT Build输出解析器&#34;并修复下面第一个答案所描述的错误,我正在检查。但这仅适用于该项目。我每次都要这样做。我怎样才能让eclipse简单地接受标准C ++我每次构建一个新项目而不重新配置每个项目?
我已经能够通过进入项目设置并添加目录来阻止包含错误:
C:/ bin中/ mingw的/ LIB / GCC /包括 ...
使用对象在行上留下错误。
#include <iostream>
#include <string>
#include <regex>
using namespace std;
int main() {
string s = "this is a test.";
regex e("est");
smatch m;
带有正则表达式的行仍显示错误:&#34;无法解析类型正则表达式&#34; 即使代码编译并且正则表达式包含被识别。
此外,在运行带有Mingw的Windows 8.1的另一台机器上,eclipse不会调试。是否有一些关于如何将Eclipse CDT连接到库的文档?
答案 0 :(得分:5)
虽然您显然已经在Eclipse中使用gcc成功编译代码,但Eclipse有自己的内置C ++解析器,您需要单独让它知道您使用的是C ++ 11。
将-std=c++11
选项添加到CDT GCC Builtin Compiler Settings
下的Project propierties -> C/C++ General -> Preprocessor Include Paths
,编译器规格应与此类似:
${COMMAND} -E -P -v -dD ${INPUTS} -std=c++11
更新。请阅读 Setting Up Include Paths and Macros for C/C++ Indexer ,了解CDT如何自动发现支持的工具链的包含路径和预处理器符号(也称为扫描程序发现)适用于您。
要点是CDT使用Language Settings Providers
来查找包含路径和预处理器符号。可以在项目属性页面Language Settings Providers
"Preprocessor Include Paths, Macros, etc."
一旦进行了适当的设置,您就可以将它们设置为模板工作区,只需为新项目复制模板工作区,或者设置一个仅设置相关设置的脚本。另请参阅:Setting preferences for all Eclipse workspaces。