开发者

Code assistance in Netbeans on Linux

My IDE (NetBeans) thinks this is wrong code, but it compiles correctly:

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

It always says unable to resolve identifier .... (.... = cout, endl, string);

So I think it has something to do with the code assistance. I think I have to change/add/remove some folders. Currently, I have these include 开发者_运维知识库folders:

C compiler:

/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++ compiler:

/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

What could be causing this, and how can I make NetBeans mark it as valid code?


It works fine for me. I'm using NetBeans 6.8; the only undefined reference I got was for the add() function.

Can you test with a new project to see if you can reproduce the problem?

EDIT (reply):

Yep, tested on Linux. No includes added in project properties.

In the global C/C++ options I have an extra include path for C, /usr/include/i486-linux-gnu.
For C++ I have:

/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

These are my defaults, haven't touched them. HTH I also use gcc-4.4.3 (Ubuntu 10.04).


Do you have the proper includes?

If I remember correctly, you need to

#include <iostream>


Go to Tools->Options->C/C++->Build tools, it will show the compiler NetBeans is using. E.g.

    /usr/bin/g++

Typing in a terminal:

    $ 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

Will show which version of the compiler Netbeans is using. If the libraries in the Code Assistance tab do not match, you need to change them for the ones of the right version. E.g.

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

and so on.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜