Je ne veux pas discuter de C ++ ou de tout langage de programmation! Je veux juste savoir ce que je fais mal avec Linux Ubuntu sur la compilation de helloworld.cpp!
J'apprends le C ++ donc mes étapes sont:
ouvrez hello.cpp dans vim et écrivez ceci
#include <iostream.h>
int main()
{
cout << "Hello World!\n";`
return 0;
}
Donc, après cela, j'ai essayé dans le terminal ce
g++ hello.cpp
ET la sortie est
hello.cpp:1:22: fatal error: iostream.h: No such file or directory
compilation terminated.
Que suggérez-vous? Un guide étape par étape utile pour moi? Merci!
g++
dans Ubuntu) ne l'acceptez pas.Réponses:
Vous devez utiliser
#include <iostream>
, noniostream.h
; le formulaire .h est très ancien et obsolète depuis des années.Vous pouvez en savoir plus sur ce que vous voulez probablement savoir sur les formulaires .h vs non .h ici: http://members.gamedev.net/sicrane/articles/iostream.html
(De plus, vous devez écrire
std::cout
ou avoir une ligne,using namespace std;
sinon votre prochaine erreur concernera le compilateur qui ne trouvera pas de définition pourcout
.)la source
iostream.h
sur mon système. En fait, les fichiers d'en-tête C ++ sont installés par libstdc ++ - dev , qui est requis par le package de compilateur C ++ g ++ , qui à son tour est requis par build-essential . Donc, non, vous n'avez pas besoin de build-essential pour compiler des programmes C ++ simples; l'installation dug++
package est suffisante.cout
au travail sans lestd::
préfixe, ilusing std::cout;
est préférable deusing namespace std;
. Même plusieursusing
instructions (sansnamespace
) sont généralement meilleures, car vous n'apportez pas d'identificateurs de l'std
espace de noms que vous ne voulez pas et peuvent entrer en conflit avec des noms dans votre propre programme.Vous devriez changer
iostream.h
pouriostream
. J'obtenais également la même erreur que vous, mais quand je suis passéiostream.h
à justeiostream
, cela a fonctionné correctement. Peut-être que cela fonctionnerait aussi pour vous.En d'autres termes, changez la ligne qui dit:
Faites-le dire à la place:
Les fichiers d'en-tête de bibliothèque standard C ++, tels que définis dans la norme, n'ont pas d'
.h
extensions.Comme mentionné dans la réponse de Riccardo Murri , vous devrez également appeler
cout
par son nom completstd::cout
ou avoir l'une de ces deux lignes (de préférence en dessous de vos#include
directives mais au-dessus de votre autre code):La deuxième façon est considérée comme préférable, en particulier pour les projets de programmation sérieux, car elle n'affecte
std::cout
que la place de tous les noms dans l'std
espace de noms (dont certains pourraient potentiellement interférer avec les noms utilisés dans votre programme).la source