[compilation] impossible de compiler un .cpp

xpack Messages postés 5 Statut Membre -  
crabs Messages postés 909 Statut Membre -
Salut
Je n'arrive pas à compiler avec le terminal (=konsole) un fichier tout simple coder en c++.

Voici ce que je fait :

[romain@localhost test]$ ls
baba.h*  test2.cpp  test2.cpp~  test.cpp  test.cpp~

[romain@localhost test]$ make test
g++     test.cpp   -o test
test.cpp: In function `int maint()':
test.cpp:6: error: `cout' undeclared (first use this function)
test.cpp:6: error: (Each undeclared identifier is reported only once for each function it appears in.)
make: *** [test] Erreur 1


et dans test.cpp il y a :

#include <iostream>

int main () {
cout<<"SALUT ";
return 0;
}


je ne sais pas comment faire pour combler ces erreur :(

merci d'avance

a+

7 réponses

  1. crabs Messages postés 909 Statut Membre 507
     
    Salut,
    cout est défini dans l'espace de nom std. Donc 2 solutions :
    soit: tu utilises std::cout à la place de cout
    soit : tu rajoutes la directive suivante après les lignes d'include :
    using namespace std ;

    A+, crabs
    0
  2. limite Messages postés 1207 Statut Membre 67
     
    Salut

    #include <iostream>
    using namespace std;
    
    int main () {
    cout<<"SALUT ";
    return 0;
    }


    Merci Crabs

    limite
    0
  3. xpack Messages postés 5 Statut Membre
     
    salut !
    merci mais j'ai toujours des erreurs :

    [romain@localhost test]$ make test
    g++     test.cpp   -o test
    /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.3/../../../crt1.o(.text+0x18): In function `_start':
    ../sysdeps/i386/elf/start.S:115: undefined reference to `main'
    collect2: ld returned 1 exit status
    make: *** [test] Erreur 1
    
    0
  4. crabs Messages postés 909 Statut Membre 507
     
    RE,
    Là tu as un problème de signature sur la fonction main.
    Essaies avec
    int main( int, char**)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. limite Messages postés 1207 Statut Membre 67
     
    Salut

    Quand tu compiles test.cpp

    g++ -c test.cpp
    g++ -o test test.cpp
    ./test


    limite
    0
  7. xpack Messages postés 5 Statut Membre
     
    merci ça marche !

    mais pourquoi il faut faire :

    g++ -c test.cpp
    g++ -o test test.cpp
    ./test

    c'est un peu long, car make c'était pratique :(

    sinon le probleme avec le int main c'est que j'avai marqué "int maint" -> faute de frappes

    Et aussi pourquoi il faut std:: ?? car j'avai jamais vu ça ??

    merci en tout cas

    a+
    0
  8. xpack Messages postés 5 Statut Membre
     
    std c'est parceque jai mi iostream et non iostream.h ??
    0
    1. crabs Messages postés 909 Statut Membre 507
       
      Oui c'est ça.
      Si tu mets iostream.h, tu risques d'avoir des warning à la compilation et afin
      de ne plus les avoir, faudra mettre -Wno-deprecated en option du compilateur.
      0