¡No quiero discutir sobre C ++ o cualquier lenguaje de programación! ¡Solo quiero saber qué estoy haciendo mal con Linux ubuntu sobre la compilación de helloworld.cpp!
Estoy aprendiendo C ++, así que mis pasos son:
abra hello.cpp en vim y escriba esto
#include <iostream.h>
int main()
{
cout << "Hello World!\n";`
return 0;
}
Entonces, después de eso intenté en la terminal esto
g++ hello.cpp
Y la salida es
hello.cpp:1:22: fatal error: iostream.h: No such file or directory
compilation terminated.
¿Que sugieres? ¿Alguna guía útil paso a paso para mí? ¡Gracias!
g++
en Ubuntu) no lo aceptesRespuestas:
Deberías usar
#include <iostream>
, noiostream.h
; la forma .h es muy antigua y obsoleta desde hace años.Puede leer más de lo que probablemente quiera saber en los formularios .h vs no .h aquí: http://members.gamedev.net/sicrane/articles/iostream.html
(Además, debe escribir
std::cout
o tener una línea; de lousing namespace std;
contrario, su próximo error será sobre el compilador que no encuentra una definicióncout
).fuente
iostream.h
en mi sistema. En realidad, los archivos de encabezado de C ++ son instalados por libstdc ++ - dev , que es requerido por el paquete del compilador de C ++ g ++ , que a su vez es requerido por build-essential . Entonces, no, no necesita build-essential para compilar programas simples de C ++; Instalar elg++
paquete es suficiente.cout
al trabajo sin elstd::
prefijo,using std::cout;
es preferibleusing namespace std;
. Incluso lasusing
declaraciones múltiples (sinnamespace
) son generalmente mejores, ya que no trae identificadores delstd
espacio de nombres que no desea y puede entrar en conflicto con los nombres en su propio programa.Deberías cambiarte
iostream.h
aiostream
. También recibí el mismo error que tú, pero cuando cambiéiostream.h
a soloiostream
, funcionó correctamente. Tal vez funcione para ti también.En otras palabras, cambie la línea que dice:
Haz que diga esto en su lugar:
Los archivos de encabezado de la biblioteca estándar de C ++, como se define en el estándar, no tienen
.h
extensiones.Como se mencionó en la respuesta de Riccardo Murri , también deberá llamar
cout
por su nombre completostd::cout
o tener una de estas dos líneas (preferiblemente debajo de sus#include
directivas pero sobre su otro código):La segunda forma se considera preferible, especialmente para proyectos de programación serios, ya que solo afecta
std::cout
, en lugar de incluir todos los nombres en elstd
espacio de nombres (algunos de los cuales podrían interferir potencialmente con los nombres utilizados en su programa).fuente