我的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将其标记为有效代码?
答案 0 :(得分: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)。
答案 1 :(得分:0)
你有合适的包括吗?
如果我没记错的话,你需要
#include <iostream>
答案 2 :(得分:0)
转到工具 - >选项 - &gt; C / C ++ - &gt;构建工具,它将显示NetBeans正在使用的编译器。 E.g。
/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正在使用的编译器版本。如果“代码帮助”选项卡中的库不匹配,则需要针对正确版本的库进行更改。 E.g。
/usr/include/c++/4.6
...
/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed
等等。