Posez votre question Signaler

G++ sous linux [Résolu]

jfrancois57 - Dernière réponse le 13 juin 2011 à 14:42
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
Lire la suite 

G++ sous linux »

7 réponses
Réponse
+10
moins plus
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)
Ajouter un commentaire
Réponse
+1
moins plus
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.
Ajouter un commentaire
Réponse
+1
moins plus
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.
Ajouter un commentaire
Réponse
+1
moins plus
Salut!!

Il faut mettre #include <iostream.h>

tu n'as pas mis le .h

@+
Bob - 22 nov. 2003 à 15:56
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.
erome - 13 juin 2011 à 14:41
bandes de mauvais!
Ajouter un commentaire
Réponse
+1
moins plus
c'est parce que tu as un .o en trop au link...
Ajouter un commentaire
Ce document intitulé « g++ sous linux » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook