使用gcc </iostream.h>在linux中链接<iostream.h>

时间:2010-02-03 00:09:23

标签: c++ linux gcc

我正在尝试在linux中运行我的第一个c ++程序(linux mint 8)。我使用gcc或g ++,都有同样的问题:编译器找不到我试图导入的库。

我怀疑我应该在工作文件夹中复制iostream.h文件(我不知道在哪里查找),将我的文件移动到其他地方编译或使用某种选项。

感谢您的建议。

这是gcc命令,c ++代码和错误消息:

gcc -o addition listing2.5.c

#include <iostream.h>

int Addition(int a, int b)
{
    return (a + b);
}

int main()
{
    cout << "Resultat : " << Addition(2, 4) << "\n";
    return 0;
}

listing2.5.c:1:22: error: iostream.h: No such file or directory
listing2.5.c: In function ‘main’:
listing2.5.c:10: error: ‘cout’ undeclared (first use in this function)
listing2.5.c:10: error: (Each undeclared identifier is reported only once
listing2.5.c:10: error: for each function it appears in.)

现在代码编译,但我无法使用文件名从命令行运行它。 addition: command not found有任何建议吗?

5 个答案:

答案 0 :(得分:26)

  • cout在std :: namespace中定义,您需要使用std::cout而不是cout
  • 您还应该使用#include <iostream>而不是旧iostream.h
  • 使用g ++编译C ++程序,它将链接到标准c ++库中。 gcc不会。如果你给它一个.c后缀,gcc也会把你的代码编译为C代码。为您的文件添加.cpp后缀。

答案 1 :(得分:5)

您需要<iostream>而不是<iostream.h>

它们也是头文件而不是库。

要解决的其他问题,cout应为std::cout,您应使用std::endl代替"\n"

答案 2 :(得分:3)

您需要<iostream><iostream.h>是非标准太旧的标头。试试这个:

#include <iostream>

int Addition(int a, int b)
{
    return (a + b);
}

int main()
{
    using namespace std;
    cout << "Resultat : " << Addition(2, 4) << "\n";
    return 0;
}

答案 3 :(得分:3)

请使用g ++而不是gcc来编译它

答案 4 :(得分:1)

如果您不想将cd与cout一起使用 -

std::cout << "Hello World";

你也可以通过'使用命名空间'关键字在程序开头定义std作为 -

     #include <iostream >

     using namespace std;

    int Addition(int a, int b)
    {
        return (a + b);
    }

    int main()
    {
        cout << "Result : " << Addition(2, 4) << "\n";
        return 0;
    }

现在,每次使用I / O操作时都不需要编写std。