在 Netbeans 中编译 hello world 时出现“对 std::ios_base::Init::Init() 未定义引用”

在 Netbeans 中编译 hello world 时出现“对 std::ios_base::Init::Init() 未定义引用”

我是 ubuntu 新手,我想用 C++ 编写代码。我g++通过软件管理器进行安装,然后安装了 netbeans,以便有一个不错的 IDE 可以用 C++ 编写代码。然后我写了这个简单的代码:

#include <iostream>
//using namespace std;

int main(int argc, char**argv) {
    // Prints welcome message...
    std:: cout << "Welcome ..." << std::endl;

    // Prints arguments...
    if (argc > 1) {
        std::cout << std::endl << "Arguments:" << std::endl;
        for (int i = 1; i < argc; i++) {
            std::cout << i << ": " << argv[i] << std::endl;
        }
    }

    return 0;
}

当我构建代码时出现此错误:

/usr/include/c++/4.8/iostream:74: undefined reference to `std::ios_base::Init::Init()'

这意味着不是我的代码有误,但 iostream 似乎引用了未知的东西。

现在,我的问题是:如何检查 gcc 和 g++ 是否安装正确?而且,如果安装正确,为什么 g++ 无法编译?

答案1

这很奇怪。您需要打开“项目属性”窗口并将 Build|Linker|Tool 从 gcc 更改为 g++。

来源:http://forums.netbeans.org/post-51209.html

附言:使用 g++ 编译代码没有问题,但使用 gcc 尝试时遇到同样的错误。

相关内容