我正在与一个关于NetBeans的C ++项目的小组合作。
出于某种原因,即使已包含正确的库,NetBeans也会将“string”,“endl”,“cout”等内容报告为“无法解析”。
项目按预期编译和运行,所以在一天结束时,这没什么大不了的,只是将所有标记为错误的内容都非常烦人。
我无法找到关于此错误的任何内容。在博客中只是一个模糊的参考。还有其他人经历过吗?
显然它没有广泛传播,因此必须有一个设置/配置导致它。有谁知道谁阻止这种情况发生?
修改
不,这些“错误”仅在IDE中。代码编译好并运行。开发人员使用了“using namespace std;”所以应该没有问题。似乎NetBeans IDE存在问题。
示例代码:
#include <stdlib.h>
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
string test;
test = "Why?";
cout << test << endl;
return (EXIT_SUCCESS);
}
此代码编译并打印出“为什么?”但在IDE中将“string”,“cout”和“endl”标记为错误。明确使用std ::没有区别
清理修改:
对于任何有兴趣的人,几天后我有5个可用于NetBeans的更新。安装此更新后,问题得到纠正,尽管代码没有变化。所以,显然这是一个NetBeans错误。
答案 0 :(得分:1)
阅读这篇文章后,我检查了更新,更新了,现在它表明没有错误:)这很奇怪因为我经常更新..
编辑: nvm,现在再次加下划线:(
答案 1 :(得分:0)
尝试std::string
,std::endl
,std::cout
等
或者,
using std::string;
using std::endl;
using std::cout;
在包含库之后,在源文件的开头。也许您的IDE将它们标记为错误,但随后又使用标准命名空间。
您也可以使用
using namespace std;
但这通常是一个坏习惯,因为它会使全局命名空间变得混乱,并且最终会出现歧义(标准命名空间很大)。就个人而言,我只是将std::
放在我的小项目中的所有内容之前,并在项目中放置using std::______
或在大型项目中使用它。
无论如何,这就是错误听起来的样子,但是(至少根据我的经验),如果这是问题,程序将无法编译。
根据您的编辑:
如果你得到的错误只来自IDE,也许你有错误的模式或什么?您在示例中发布的代码非常简单C ++,任何愿意使用C ++的编译器或IDE都可以处理它没问题。如果您描述的错误来自您的编译器,则意味着您要么没有包含命名空间,要么您尝试使用C编译器编译C ++代码 - 也许netbeans认为您正在编写C?
答案 2 :(得分:0)
对于任何有兴趣的人,几天后我有5个可用于NetBeans的更新。安装此更新后,问题得到纠正,尽管代码没有变化。所以,显然这是一个NetBeans错误。
答案 3 :(得分:0)
FWIW我在Ubuntu 10.04上遇到与Netbeans 6.8相同的问题。令人沮丧的Netbeans也告诉我,它在帮助中是最新的 - &gt;检查更新菜单(因为这是Ubuntu的当前版本)。
通过synaptic / aptitude删除Netbeans并手动下载和安装最新版本(6.9.1)也解决了我的问题。我希望商店里没有更多这样的恶作剧......
现在我已经解决了这个问题并应用了this性能补丁,我已经设置了一个非常好的IDE,可以快速完成代码。很遗憾,这种体验并不是开箱即用的,我花了相当多的时间在Eclipse CDT和Netbeans上试图让事情顺利进行。