我在Eclipse中有以下代码:我正在运行CDT版本的Indigo SR 2,64位,版本:8.0.2.201202111925生成ID:@ build @我有Java SDK,Android SDK和C ++ CDT。我相信问题仅发生在c ++ 11函数上:即使编译器在Eclipse的内部代码分析器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
我为什么不编译?我正在CDT和cygwin中使用eclipse靛蓝。我可以根据需要提供更多信息。
更新:我使用Cygwin GCC和Cygwin PE解析器通过eclipse(锤键或右键单击项目,然后单击生成)进行编译。
更新2:在indigo中运行会同时导致编辑器错误和编译失败,开普勒给了我这个错误,但似乎可以成功运行和编译。有没有办法使开普勒错误消失?另外,我如何将实际的命令从eclipse中传递给编译器?
更新3:更怪异的是,在开普勒中进行编译后,它现在也可以在靛蓝中进行编译,尽管在两个版本的文本编辑器中仍然存在错误。
1)有什么方法可以使这些错误更准确地进行编译?
2)我可以按include上的f3并查看其来源,那么为什么蚀似乎无法找到数组符号?
3)我还被告知第一个std::endl
是Invalid overload of 'std::endl'
更新4:我尝试了std::tr1::array<int, 3> arr1 = {1, 2, 3};
,但它仍然告诉我无法解析数组。我已经在我的c / C ++ Build-> Settings-> Cygwin C ++ Compiler-> Miscellaneous-> Other标志中添加了-std=c++11
。现在显示为:-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”的链接,它没有任何改变...
谢谢!
我想我可以通过更改以下设置来解决此问题:项目->属性-> C / C ++常规/预处理器包含路径,宏等->提供程序(选项卡)
然后是“ CDT GCC内置编译器设置”->单击链接“工作区设置”再次在“获取编译器规格的命令:”下的“ CDT GCC内置编译器设置”。添加:"-std=c++11"
花了一会儿,然后红色的小花形消失了。
这是来源:http://www.eclipse.org/forums/index.php/mv/msg/373462/909018/#msg_909018
我也尝试过以下操作:http://scrupulousabstractions.tumblr.com/post/36441490955/eclipse-mingw-builds但这并不完全有效。可能是因为我在Ubuntu上。
我在工作区设置> C / C ++>生成>设置>发现(选项卡)> CDT GCC内置编译器设置中的“获取编译器规范的命令”的末尾添加了“ -std = c ++ 11” “ ...
并且我已经设置了项目,因此在“属性”>“ C / C ++常规”下禁用了“启用项目特定设置”。
但是我仍然遇到了C ++ 11相关的CODAN错误。
我刚刚发现,取消选中“启用项目特定设置”并不能保证该项目将使用工作空间中的“发现”设置。您仍然必须在项目中转到“属性”>“ C / C ++常规”>“预处理器包含路径,宏等”。>“提供程序”(选项卡)>“ CDT GCC内置编译器设置...”,并确保“使用共享的全局提供程序”选项“项目”已选中(在我的系统上,默认情况下,运行Eclipse IDE for C / C ++版本2019-09 R时,它不是默认状态)。选中此选项,“ CDT GCC内置编译器设置”现在在其旁边显示[共享]。
[还有一些其他发现提供程序,您需要在其中设置类似的选项,以确保[共享]显示在列表中(如果您尝试应用工作空间设置)。我留下的“ CDT用户设置条目”是特定于项目的,但我共享的其他条目是为了使用工作空间级别的设置。
[CODAN现在可以正常工作了,我不再需要手动“刷新”索引和/或添加#include语句来微调CODAN。