problème de compilation avec les bibliothèques standards
J'ai un petit souci avec un programme tout simple, dont voici la source :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| #include <iomanip>
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
int main(int argc, char** argv)
{
string filein;
string fileout;
int i;
if(argc==1) filein=argv[1];
else {
cout << "La syntaxe est : cara2mgs nomfichier.dat" << endl;
return 0;
}
i=filein.find('.');
fileout=filein;
fileout.replace(i+1, 3, "mgs");
cout << fileout << endl;
return 0;
} |
lorsque je compile le code, voilà ce que j'obtiens :
[localhost Linux-g++]$ g++ -I/usr/include -L/usr/lib -lm -o cara2mgs cara2mgs.cc
cara2mgs.cc: In function ‘int main(int, char**)’:
cara2mgs.cc:10: erreur: ‘string’ was not declared in this scope
cara2mgs.cc:10: erreur: expected `;' before ‘filein’
cara2mgs.cc:11: erreur: expected `;' before ‘fileout’
cara2mgs.cc:14: erreur: ‘filein’ was not declared in this scope
cara2mgs.cc:16: erreur: ‘cout’ was not declared in this scope
cara2mgs.cc:16: erreur: ‘endl’ was not declared in this scope
cara2mgs.cc:20: erreur: ‘filein’ was not declared in this scope
cara2mgs.cc:21: erreur: ‘fileout’ was not declared in this scope
cara2mgs.cc:23: erreur: ‘cout’ was not declared in this scope
cara2mgs.cc:23: erreur: ‘endl’ was not declared in this scope
je précise que j'ai rajouté les options -I et -L après avoir essayé simplement :
g++ -lm -o cara2mgs cara2mgs.cc
aurais-je oublié quelque chose?
je parie que je vais avoir honte quand vous me donnerez la solution :lol:
balise [code] rajoutée par r0d, merci d'y penser la prochaine fois.