G++ sous linux

Résolu
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. 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. Merci !!!
      0
  2. 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
    1. Salut!!

      Il faut mettre #include <iostream.h>

      tu n'as pas mis le .h

      @+
      2
      1. 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. bandes de mauvais!
        0
      3. gros plow
        0
      4. pourquoi #include est inférieur à iostream ?
        0
    2. 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
      1. c'est parce que tu as un .o en trop au link...
        1
        1. woaw une expertise comme ca ca se paye
          0
        2. lol
          0