我的IDE(NetBeans)认为这是错误的代码,但正确编译了:

std::cout << "i = " << i << std::endl;
std::cout << add(5, 7) << std::endl;
std::string test = "Boe";
std::cout << test << std::endl;

它总是说 unable to resolve identifier .... (.... = cout, endl, string);

因此,我认为这与代码帮助有关。我想我必须更改/添加/删除一些文件夹。目前,我有这些文件夹:

C编译器:

/usr/local/include
/usr/lib/gcc/i486-linux-gnu/4.4.3/include
/usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed
/usr/include

C ++编译器:

/usr/include/c++/4.4.3
/usr/include/c++/4.4.3/i486-linux-gnu
/usr/include/c++/4.4.3/backward
/usr/local/include
/usr/lib/gcc/i486-linux-gnu/4.4.3/include
/usr/include

是什么可能导致这一点,如何使Netbeans将其标记为有效代码?

有帮助吗?

解决方案

这对我来说可以。我正在使用Netbeans 6.8;我获得的唯一不确定的参考是用于add()函数。

您可以测试一个新项目以查看是否可以重现问题吗?

编辑(回复):

是的,在Linux上测试。在项目属性中添加了否。

在全局C/C ++选项中,我有一个额外的c,c/c /usr/include/i486-linux-gnu.
对于C ++,我有:

/usr/include/c++/4.4
/usr/include/c++/4.4/i486-linux-gnu
/usr/include/c++/4.4/backward
/usr/local/include
/usr/lib/gcc/i486-linux-gnu/4.4.3/include
/usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed
/usr/include/i486-linux-gnu
/usr/include

这些是我的默认值,没有触摸它们。 HTH我还使用GCC-4.4.3(Ubuntu 10.04)。

其他提示

您有适当的内容吗?

如果我没记错的话,你需要

#include <iostream>

转到工具 - >选项 - > c/c ++ - >构建工具,它将显示编译器NetBeans正在使用。例如

    /usr/bin/g++

在终端中打字:

    $ whereis g++
    g++: /usr/bin/g++ /usr/bin/X11/g++ /usr/share/man/man1/g++.1.gz
    $ ls -al /usr/bin/g++
    lrwxrwxrwx 1 root root 7 Mar 13  2012 /usr/bin/g++ -> g++-4.6

将显示哪个版本的编译器NetBeans正在使用。如果“代码协助”选项卡中的库不匹配,则需要为正确版本的库更改它们。例如

    /usr/include/c++/4.6
    ...
    /usr/lib/gcc/i686-linux-gnu/4.6/include-fixed

等等。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top