OVH Cloud OVH Cloud

g++

12 réponses
Avatar
manette
bonjour ,

j'ai un petit probleme avec g++

si je veux utiliser iostream.h à la compilation j'ai comme message
d'erreur

$ g++ -o progratest1 programme.cpp
In file included from
/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.3/../../../../include/c++/3.4.3/backward/ostream.h:31,
from programme.cpp:2:
/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.3/../../../../include/c++/3.4.3/backward/backward_warning.h:32:2:
warning: #warning This file includes at least one deprecated or
antiquated header. Please consider using one of the 32 headers found in
section 17.4.1.2 of the C++ standard. Examples include substituting the
<X> header for the <X.h> header for C++ includes, or <iostream> instead
of the deprecated header <iostream.h>. To disable this warning use
-Wno-deprecated.


g++ a cependant crée un fichier progratest1 qui fonctionne .


si j'essaye de suivre les recommandations je remplace
#include <iostream.h>
par
#include <iostream>

et à la compilation j'ai ce nouveau message d'erreur

$ g++ -o progratest2 programme.cpp

programme.cpp: In function `int main(int, char**)':
programme.cpp:6: error: `cout' undeclared (first use this function)
programme.cpp:6: error: (Each undeclared identifier is reported only
once for each function it appears in.)

bref il ne reconnait pas cout et de plus g++ ne crée pas de fichier
progratest2 .


question : Comment se fait il qu'en suivant les recommandations du
premier warnings j'obtiens un resultat moindre qu'au début ?

merci .

10 réponses

1 2
Avatar
manette
manette wrote:

je donne programme.cpp

#include <stdio.h>
#include <iostream.h>

int main(int argc ,char** argv)
{
cout << "testn" ;
return(0);

}
Avatar
Emmanuel Fleury
manette wrote:
manette wrote:

je donne programme.cpp

#include <stdio.h>
#include <iostream.h>


using namespace std;

int main(int argc ,char** argv)
{
cout << "testn" ;
return(0);

}


Amicalement
--
Emmanuel Fleury

Q: How many C++ programmers does it take to change a lightbulb ?
A: You're still thinking procedurally. A properly designed lightbulb
object would inherit a change method from a generic lightbulb class,
so all You'd have to do, is to send a lightbulb change message.
-- Unknown

Avatar
lhabert
manette :

si j'essaye de suivre les recommandations je remplace
#include <iostream.h>
par
#include <iostream>


Bien.

programme.cpp: In function `int main(int, char**)':
programme.cpp:6: error: `cout' undeclared (first use this function)


« cout » est dans le namespace « std », il faut donc dire « std::cout »,
comme pour tous les trucs de la stdlib. Ça fait quelques années que c'est le
cas. Si tu es en train d'apprendre le C++ avec un bouquin qui ne le dit pas,
je te conseille de passer à un bouquin plus récent. (Enfin je te
conseillerais surtout de ne pas apprendre le C++, mais c'est un autre
problème.)

Avatar
George Abitbol

(Enfin je te
conseillerais surtout de ne pas apprendre le C++, mais c'est un autre
problème.)


Mon trollomètre commence à s'agiter...

Avatar
Emmanuel Fleury
George Abitbol wrote:

Mon trollomètre commence à s'agiter...


Tu dois avoir un modèle plus puissant que moi car le mien vient de me
lacher (surcharge!!!).

:)

Amicalement
--
Emmanuel Fleury

I suppose if we couldn't laugh at things that don't make sense,
we couldn't react to a lot of life.
-- Calvin & Hobbes (Bill Waterson)

Avatar
manette
Luc Habert wrote:
manette :


si j'essaye de suivre les recommandations je remplace
#include <iostream.h>
par
#include <iostream>



Bien.


programme.cpp: In function `int main(int, char**)':
programme.cpp:6: error: `cout' undeclared (first use this function)



« cout » est dans le namespace « std », il faut donc dire « std::cout »,


j'ai changé
cout << "testn"; par
st::cout << "testn" ;

et j'ai plus d'erreur à la compilation

merci

comme pour tous les trucs de la stdlib. Ça fait quelques années que c'est le
cas. Si tu es en train d'apprendre le C++ avec un bouquin qui ne le dit pas,
je te conseille de passer à un bouquin plus récent.


j'ai un vieux bouquin de c++ de chez micro application (il date de 97)

(Enfin je te
conseillerais surtout de ne pas apprendre le C++, mais c'est un autre
problème.)


ah ! pouvez m'en dire plus ?
en fait j'ai taté du c++ puis du java il y a un moment (un peu oublié )
je m'y remets sous linux . j'ai du mal , me faudra du temps pour
prendre mes reperes sous linux .

qu'est ce qui n'irait pas avec le c++ . Dois je me contenter du c pour
linux ?Dans ce cas avec quel langage faire de la programmation objet
sous linux (à part java ) ?


Avatar
Emmanuel Fleury
manette wrote:

j'ai un vieux bouquin de c++ de chez micro application (il date de 97)


Les normes du langage C++ sont comme les musiques à la mode...
Elles changent tous les mois. :)

Il faut soit que tu adaptes ce qui est écrit dans ton vieux bouquin,
soit que tu t'en prennes un plus récent (mais il existe des tas de
documentations sur le Web).

conseillerais surtout de ne pas apprendre le C++, mais c'est un autre
problème.)


ah ! pouvez m'en dire plus ?


Entre nous, je trouve cet avis un peu péremptoire. :)

C++ et STL font souvent bon ménage à condition de s'astreindre à une
certaine rigeur de programmation et de faire du C++ (sans le mélanger
avec des habitudes de C).

Mais bon, le goût et les couleurs. :)

Amicalement
--
Emmanuel Fleury

What if everything is an illusion and nothing exists?
In that case, I definitely overpaid for my carpet.
-- Woody Allen


Avatar
lhabert
manette :

j'ai un vieux bouquin de c++ de chez micro application (il date de 97)


Ouille, j'ai très peur. Je te dirais par défaut de prendre le bouquin de
Stroustrup (édition la plus récente possible), mais bon, il est vraiment
puant d'autocongratulation...

ah ! pouvez m'en dire plus ?


Bah c'était juste un troll. Disons que pour des trucs simples sans trop de
templates, c'est peut-être pas trop mal, mais pour les trucs que je fais
avec des templates de templates de templates, c'est l'horreur, les règles
paraissent arbitraires, le lookup est incompréhensible, il faut réécrire son
code à chaque nouvelle version de g++, et j'arrive même à le (le
compilateur, pas mes programmes) faire segfaulter de temps en temps...

Dans ce cas avec quel langage faire de la programmation objet sous linux
(à part java ) ?


Ocaml par exemple.

Avatar
lhabert
Et j'oubliais les messages d'erreur de g++ qui sont vraiment peu clairs.
Avatar
Emmanuel Fleury
Luc Habert wrote:

Ocaml par exemple.


Mouhahahahahaha ! Quel déconneur ce Luc ! :-D

Amicalement
--
Emmanuel Fleury

If you care, you just get disappointed all the time.
If you don't care nothing matters so you are never upset.
-- Calvin & Hobbes (Bill Waterson)

1 2