pamputt Posté(e) le 26 mai 2009 Partager Posté(e) le 26 mai 2009 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 More sharing options...
lorinc Posté(e) le 26 mai 2009 Partager Posté(e) le 26 mai 2009 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) Lien vers le commentaire Partager sur d’autres sites More sharing options...
pamputt Posté(e) le 26 mai 2009 Auteur Partager Posté(e) le 26 mai 2009 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 More sharing options...
theocrite Posté(e) le 27 mai 2009 Partager Posté(e) le 27 mai 2009 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) : Si on connait le nom du package, on utilise aptitude ou packages.debian.org pour trouver le nom du paquet (par exemple en faisant une recherche sur libsdtc++ Si on ne connait pas le nom du package on utilise apt-file ou également packages.debian.org avec le nom du fichier manquant. Par exemple avec fstream.h 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 More sharing options...
Amour Posté(e) le 28 mai 2009 Partager Posté(e) le 28 mai 2009 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 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 More sharing options...
lorinc Posté(e) le 28 mai 2009 Partager Posté(e) le 28 mai 2009 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.