0

我的 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 将其标记为有效代码?

4

3 回答 3

2

这对我来说可以。我正在使用 NetBeans 6.8;我得到的唯一未定义的参考是 add() 函数。

你能用一个新项目来测试,看看你能不能重现这个问题?

编辑(回复):

是的,在 Linux 上测试过。项目属性中不添加任何包含。

在全局 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)。

于 2010-06-02T12:05:26.387 回答
0

转到 Tools->Options->C/C++->Build tools,它将显示 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

等等。

于 2013-02-02T17:00:58.070 回答
0

你有适当的包括吗?

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

#include <iostream>
于 2010-06-02T11:54:49.840 回答