Como compilar o código-fonte C ++ (erro “iostream.h não encontrado”)?

18

Eu não quero discutir sobre C ++ ou qualquer linguagem de programação! Eu só quero saber o que estou fazendo de errado com o Linux Ubuntu sobre compilar helloworld.cpp!

Estou aprendendo C ++, então meus passos são:

abra o hello.cpp no vim e escreva isto

#include <iostream.h>
int main()
{
    cout << "Hello World!\n";'
    return 0;
}

Então, depois disso eu tentei no terminal isso

g++ hello.cpp

E a saída é

hello.cpp:1:22: fatal error: iostream.h: No such file or directory
compilation terminated.

O que você sugere? Qualquer guia passo a passo útil para mim? Obrigado!

    
por gabriel 03.05.2012 / 15:44

2 respostas

40

Você deve usar #include <iostream> , não iostream.h ; o formulário .h é muito antigo e obsoleto desde anos.

Você pode ler mais do que provavelmente deseja saber nos formulários .h vs não .h aqui: link

(Além disso, você deve escrever std::cout ou ter uma linha using namespace std; senão o próximo erro será sobre o compilador não encontrar uma definição para cout .)

    
por Riccardo Murri 03.05.2012 / 15:53
14

Você deve alterar iostream.h para iostream . Eu também estava recebendo o mesmo erro que você está recebendo, mas quando eu mudei iostream.h para apenas iostream , funcionou corretamente. Talvez funcione para você também.

Em outras palavras, altere a linha que diz:

#include <iostream.h>

Diga: "

#include <iostream>

Os arquivos de cabeçalho da biblioteca padrão C ++, conforme definido no padrão, não possuem .h extensões.

Como mencionado resposta de Riccardo Murri , você também precisará chamar cout pelo seu nome completo std::cout ou tenha uma destas duas linhas (de preferência abaixo das suas diretivas #include , mas acima do seu outro código):

using namespace std;
using std::cout;

A segunda maneira é considerada preferível, especialmente para projetos de programação sérios, pois afeta apenas std::cout , em vez de incluir todos os nomes no namespace std (alguns dos quais podem interferir nos nomes usados em seu programa ).

    
por Dhruv kaushik 26.09.2012 / 17:28

Tags