Rechercher : dans
Par :

Problème programmation c++ sur linux fedora

Dernière réponse le 30 oct 2009 à 00:02:55 l3_info, le 29 oct 2009 à 20:16:55 
 Signaler ce message aux modérateurs

Bonsoir,

je suis nouveau sur linux fedora 11 (leonidas)

je commence à coder en c++, j'ai installé gcc en faisant

yum install gcc

le problème maintenant est que lors de la compilation, j'ai les erreurs suivantes:

test.c:1:18: erreur: string : Aucun fichier ou dossier de ce type
test.c:2:20: erreur: iostream : Aucun fichier ou dossier de ce type

en fait le compilateur ne trouve pas iostream et string, pourtant je les inclue correctement, de la manière suivante:

#include <string>
#include <iostream>

Merci de votre aide!

Configuration: Linux Fedora
Firefox 3.5.3

Meilleures réponses pour « problème programmation c++ sur linux fedora » dans :
[Linux] Installer les programmes (gestion des paquets, compil) Voir************************************************************** * INSTALLER UN PROGRAMME SOUS LINUX : **** * LA GESTION DES PAQUETS ou COMMENT SE SIMPLIFIER LA VIE * * UN EXEMPLE DE COMPILATION POUR SE FAIRE LA MAIN ...
Ressources programmation système Linux VoirVoici quelques liens qui vous permettront de vous aider à vous débrouiller avec la programmation système sous Linux. Tutoriels * Page de M. Billaud (fr) Un cours/tutoriel sur la programmation système et réseau sous Unix. Très complet. Cours de...
Installer un programme sur Linux Ubuntu VoirInstaller un programme avec Linux Ubuntu Ce qui suit s'applique aux distributions Ubuntu récentes Premier embarquement sur Linux Linux est encore plus facile si on ne connais pas Windows En premier: 'Comment ne pas tenter d'installer un...

1

 mamiemando, le 30 oct 2009 à 00:02:55

Déjà c'est du C++ donc ton fichier est sensé être postfixé par un .cpp (.hpp pour les headers) et non .c (ou .h). De plus il doit être compilé avec g++ et non gcc (gcc ne compile que du C et ne sait pas où se trouvent les headers de la STL que tu tentes d'utiliser).

Ensuite il faut que tu préfixes pas les types et constantes de la STL de leur namespace, à savoir std::. Exemple :

#include <iostream>
#include <string>

int main(){
  const std::string s = "plop !";
  std::cout << "pouet" << std::endl << s << std::endl;
  return 0;
}


Certains mettent après avoir fait les #include un :

using namespace std;


... pour éviter de taper les std:: mais c'est à mon humble avis une mauvaise habitude (surtout si tu débutes en C++).

En effet, le fait de pouvoir sous-entendre le namespace std peut engendrer des collisions (si tu as par exemple le malheur de nommer une classe avec un nom déjà présent de la STL par exemple). Il ne faut jamais faire cela dans un header (.hpp) pour ne pas "contaminer" les fichiers qui pourraient l'inclure. C'est pourquoi je te conseille d'écrire systématiquement les namespace, même si ça peut paraître un peu lourd à l'écriture.

Bonne chance

Répondre à mamiemando