我在eclipse中有以下代码:我运行的是Indigo SR2,64位,带有CDT版本: 8.0.2.201202111925 Build id:@build@我有Java SDK、Android SDK和C++ CDT。我相信只有Eclipse11函数才会出现这个问题:看起来c++的内部代码分析器CODAN没有正确地找到这些库,即使编译器找到了(我的编译器上有std=C++11标志)。
我认为这个话题是相关的:http://www.eclipse.org/forums/index.php/t/490066/
#include <iostream>
#include <array>
using namespace std;
int main(){
cout << "test";
array<int,5> myints;
int x = 0;
cout << "size of myints: " << myints.size() << std::endl;
cout << "sizeof(myints): " << sizeof(myints) << std::endl;
return 0;
}我收到一个错误/没有编译,因为我被告知:
Symbol 'array' could not be resolved为什么我没有编译?我正在使用eclipse indigo和CDT和cygwin。如有必要,我可以提供更多信息。
更新:我使用Cygwin、GCC和Cygwin PE解析器通过eclipse (锤子按钮或右键单击项目并单击build)进行编译。
更新2:在indigo中运行会给出编辑器错误和编译失败,而开普勒会给出错误,但似乎可以成功运行和编译。有没有办法让这个错误在开普勒中消失呢?另外,如何从eclipse中获取传递给编译器的实际命令?
更新3:更奇怪的是,在开普勒编译后,它现在也可以用indigo编译,尽管在两个版本的文本编辑器中都存在错误。
1)有没有一种方法可以使这些错误对编译更准确?
2)我可以在include上按f3并查看其源代码,那么为什么eclipse似乎找不到数组符号呢?
3)我还被告知第一个std::endl是一个Invalid overload of 'std::endl'
更新4:我尝试了std::tr1::array<int, 3> arr1 = {1, 2, 3};,但它仍然告诉我数组无法解析。我已经将-std=c++11添加到我的c/C++构建->设置-> Cygwin C++编译器->杂项->其他标志中。它现在显示为:-c -fmessage-length=0 -std=c++11,但此时我看不到任何变化
更新:这个问题似乎切中了问题的要害:Eclipse C/C++ Shows Errors but Compiles?然而,我已经添加了一个指向目录"D:/Wamp/cygwin64/lib/gcc/x86_64-pc-cygwin/4.8.2/include“的链接,它并没有改变任何东西……
谢谢!
发布于 2014-03-21 01:03:36
我想我通过更改以下设置就解决了这个问题:项目->属性->C/C++通用/预处理器包含路径,宏等。->提供程序(选项卡)
然后,在“命令获取编译器规格:”->:"-std=c++11"下面,点击链接“工作区设置”"CDT GCC内置编译器设置“(再次),点击"CDT GCC内置编译器设置”添加:
它刷新了一下,然后红色的小曲线消失了。
这就是来源:http://www.eclipse.org/forums/index.php/mv/msg/373462/909018/#msg_909018
我也尝试过这样做:http://scrupulousabstractions.tumblr.com/post/36441490955/eclipse-mingw-builds,但它并不能准确地工作。可能是因为我在用Ubuntu。
发布于 2019-10-26 08:41:09
我已经在Workspace Settings > C/C++ > Build > Settings > Discovery (选项卡)> CDT -std=c++11 Built-in Compiler Settings(工作空间设置>C/C++>构建>设置>发现(选项卡)>CDT to in-in compiler Settings)中的“获取编译器规格的命令”的末尾添加了"-std=c++11“。
我已经在Properties > C/C++ General下设置了我的项目,所以禁用了"Enable project specific settings“。
但是我仍然得到了与C++11相关的CODAN错误。
我刚刚发现,取消选中“启用特定于项目的设置”并不能保证项目将使用工作区中的Discovery设置。你仍然需要在你的项目中进入属性> C/C++常规>预处理器包含路径,宏等>提供者(选项卡)> CDT GCC内置编译器设置...并确保选中了"Use global provider shared between“选项(在我的系统上,运行Eclipse IDE for C/C++ version 2019-09R时,该选项不是缺省的)。选中此选项后,"CDT GCC内置编译器设置“将在其旁边显示共享。
还有一些其他发现提供程序,您需要设置类似的选项以确保共享显示在列表中(如果您正在尝试应用您的工作区设置)。我将"CDT用户设置条目“保留为特定于项目的条目,但我共享的其他条目是为了使用工作区级别的设置。
CODAN现在可以正常工作了,我不再需要手动“刷新”索引和/或添加#include语句来推动CODAN。
发布于 2022-03-02 09:03:58
C/C++构建->设置->工具设置->交叉G++编译器->方言->语言标准->选择要使用的语言。
你不需要在其他地方添加"-std=c++11“
https://stackoverflow.com/questions/22522048
复制相似问题