[gull] C++ sous linux

Marc Mongenet marc.mongenet at gmail.com
Sun Apr 24 07:28:02 CEST 2005


> J'essaie de compiler un petit programme test en C++ sous linux utilisant
> les librairies standard C++:
> 
> #include <iostream>
> int main()
> {
>         cout << "hello world\n";
>         return 0;
> }
> 
> Commande de compilation:
> 
> $ g++ first.cpp
> 
> Malheureusement j'obtiens une erreur:
> 
> first.cpp: In function `int main()':
> first.cpp:5: error: `cout' undeclared (first use this function)
> first.cpp:5: error: (Each undeclared identifier is reported only once
> for each
>    function it appears in.)

Bonjour,

Réponse courte :
écrire std::cout à la place de cout

Réponse plus longue :
- À l'époque (avant la bibliothèque standard), on incluait iostream.h.
- Un jour, la notion de namespace à été introduite dans C++.
- Et tout ce qui est standard à été mis dans le namespace appelé std.
- Donc le compilateur ne trouve plus cout (ni cin, ni cerr, etc), sauf
à écrire std::cout.
- Pour résoudre le problème, il existe plusieurs moyens :
-- Utiliser std:: un peu partout.
-- Ou bien utiliser l'instruction using ainsi:
#include <iostream>
using namespace std;
-- Ou bien (continuer à) inclure iostream.h, qui en fait implémente
les deux lignes précédentes.

Bienvenue dans le monde merveilleux de C++. :)
J'ai utilisé la bibliothèque standard sur Linux, n'hésite pas à poser
d'autres questions, tant que j'arrive à suivre...

Marc Mongenet



More information about the gull mailing list