Aller au contenu

Où se trouvent stream.h, iostream.h, fstream.h ?


pamputt

Messages recommandés

Bonjour,

j'ai récupéré des programmes en C/C++ et il ne tourne pas sur ma Mandriva 2009.1 Powerpack 64-bits avec KDE 4.2.3.

Le problème vient du fait que j'appelle les bibliothèques stream.h, iostream.h et fstream.h dans mon programme mais que Mandriva ne les connait pas.

A la compilation, j'obtiens le message d'erreur suivant :

la recherche pour #include "..." débute ici :
la recherche pour #include <...> débute ici:
/home/user/root/include
/usr/lib/gcc/x86_64-manbo-linux-gnu/4.3.2/../../../../include/c++/4.3.2
/usr/lib/gcc/x86_64-manbo-linux-gnu/4.3.2/../../../../include/c++/4.3.2/x86_64-manbo-linux-gnu
/usr/lib/gcc/x86_64-manbo-linux-gnu/4.3.2/../../../../include/c++/4.3.2/backward
/usr/local/include
/usr/lib/gcc/x86_64-manbo-linux-gnu/4.3.2/include
/usr/include
Fin de la liste de recherche.
GNU C++ (GCC) version 4.3.2 (x86_64-manbo-linux-gnu)
	compiled by GNU C version 4.3.2, GMP version 4.2.4, MPFR version 2.3.2.
warning: MPFR header version 2.3.2 differs from library version 2.4.1.
heuristiques GGC: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: fcf4a620c5bfa13c88b77c3aeef378a9
Dans le fichier inclus à partir de CParticle.h:1,
	  à partir de CParticle.cpp:1:
Defines.h:3:20: erreur: stream.h : Aucun fichier ou dossier de ce type
Defines.h:4:22: erreur: iostream.h : Aucun fichier ou dossier de ce type
Defines.h:5:21: erreur: fstream.h : Aucun fichier ou dossier de ce type
CParticle.cpp: In member function ‘void CParticle::Print()’:
CParticle.cpp:108: erreur: ‘cout’ was not declared in this scope
CParticle.cpp:108: erreur: ‘endl’ was not declared in this scope
make: *** [CParticle.o] Erreur

Est ce que vous savez quel paquet faut-il installer pour récupérer ces headers ?

Lien vers le commentaire
Partager sur d’autres sites

En fait je ne sais pas si c'est du C ou du C++ mais en tout cas ces programmes fonctionnent sous une version de Fedora pas trop ancienne (version 8 à peu près)

Donc comment est ce que je peux installer les anciennes bibliothèques parceque si je met iostream tout court ça va fonctionner mais je vais être obligé de changer toutes les bibliothèques alors que ça fonctionne sous une autre version de Linux.

Lien vers le commentaire
Partager sur d’autres sites

Il faut chercher dans les paquets de ta distribution. Il y a deux manières :

  • Soit tu connais à peut près le paquet
  • Soit tu le trouve grâce à des indices

Je ne connais pas du tout Madriva ou Fedora, mais voilà comment on ferait sous Debian (ou Ubuntu ou une autre distrib basée sur apt) :

Je laisse le soin à des connaisseurs du rpm (éventuellement à toi même) de faire la traduction en commandes/sites webs pour rpm.

Lien vers le commentaire
Partager sur d’autres sites

en C++ on ne mets pas le ".h" pour les bibliothèques standards. Il faut donc mettre #include <iostream>

Sinon, elle sont contenues dans le package libstdc++-devel (de mémoire)

Après fouille dans le rpm libstdc++-devel de Mandriva 2009.1 il y a bien ces fichiers :transpi:

PS : pour trouver quel rpm contient un fichier, on peut utiliser le site rpmseek mais c'est pas toujours à jour ou trié.

Disons que ça donne la marche à suivre...

Lien vers le commentaire
Partager sur d’autres sites

En fait je ne sais pas si c'est du C ou du C++ mais en tout cas ces programmes fonctionnent sous une version de Fedora pas trop ancienne (version 8 à peu près)

Donc comment est ce que je peux installer les anciennes bibliothèques parceque si je met iostream tout court ça va fonctionner mais je vais être obligé de changer toutes les bibliothèques alors que ça fonctionne sous une autre version de Linux.

C'est du C++, et la syntace standard est "#include <iostream>". Ça marchera sur tous les linux comme ça :francais:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...