G++ sous linux

Résolu
jfrancois57 -  
 real -
j ai une petite question concernant g++

toto.cc

Code:

#include <iostream>
 
using namespace std;  le makefile
 
 int main()
 {
   char buffy[128];
 
   cout << "Hello World!\n";
   cin >> buffy;
 }
 

sur la console j'ai

Code:

[jean@ EssaiC++Project]$ gcc toto.cc
toto.cc:11:4: warning: no newline at end of file
/tmp/cccVL0xC.o(.text+0x1c): In function `main':
: undefined reference to `std::cout'
/tmp/cccVL0xC.o(.text+0x21): In function `main':
: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/tmp/cccVL0xC.o(.text+0x33): In function `main':
: undefined reference to `std::cin'
/tmp/cccVL0xC.o(.text+0x38): In function `main':
: undefined reference to `std::basic_istream<char, std::char_traits<char> >& std::operator>><char, std::char_traits<char> >(std::basic_istream<char, std::char_traits<char> >&, char*)'
/tmp/cccVL0xC.o(.text+0x64): In function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `std::ios_base::Init::Init[in-charge]()'
/tmp/cccVL0xC.o(.text+0x93): In function `__tcf_0':
: undefined reference to `std::ios_base::Init::~Init [in-charge]()'
/tmp/cccVL0xC.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
[jean@ EssaiC++Project]$

je ne comprends pas bien les erreurs.
Merci beaucoup pour votre aide

5 réponses

  1. Carri€ Messages postés 41 Statut Membre 29
     
    Bonjour,
    j'ai eu le même probleme que JFrancois57 (même erreur a la compilation). C'était parce-que j'utilisais la commande
    "gcc test.cpp " (gcc pour le C)
    au lieu de
    g++ test.cpp (g++ pour le C++)
    Voili voilou! Je pense que pourra aider pas mal de personnes ;o)
    19
    1. marion
       
      Merci !!!
      0
  2. Bob
     
    Apprend l'anglais tu verras qu'on ne pose plus de question ou presque sur des forums. Essaye ça:

    #include <iostream>

    using namespace std; // tu n'utiliseras que des noms de fonction compris dans la classe standard

    int main()
    {
    char buffy[128];
    cout << "Hello World!\n"; // ceci est un commentaire d'une ligne
    cin >> buffy;
    return 0; // trés important quand ta fonction "main()" de type "int"
    }

    normalement ça devrait marcher mais pour la programmation poste dans le forum réservé c'est préférable même si c'est du GNU/Linux le sujet clé est bien le langage C.
    2
  3. wormlord Messages postés 630 Date d'inscription   Statut Membre 54
     
    Salut!!

    Il faut mettre #include <iostream.h>

    tu n'as pas mis le .h

    @+
    2
    1. Bob
       
      Ce n'est pas une erreur de ma part c'est bien l'en-tête <iostream> telle y est définie dans la norme contrairement à la bibliothèque C avec par exemple <stdio.h> contre <cstdio>. Fais une recherche de ces en-têtes tu verras bien qu'elles existent.
      0
    2. erome
       
      bandes de mauvais!
      0
    3. arthur
       
      gros plow
      0
    4. JeanClaude
       
      pourquoi #include est inférieur à iostream ?
      0
  4. Bob
     
    Sans oublier ".cpp" pour C++ ".c" pour C ce sont les extensions les plus utilisées en pratique et mieux reconnues par les compilos que ".cc" assez exotique.
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. erome
     
    c'est parce que tu as un .o en trop au link...
    1
    1. arthur
       
      woaw une expertise comme ca ca se paye
      0
    2. real
       
      lol
      0