Problème compilateur c++

Résolu/Fermé
Goupfrancis Messages postés 21 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 2 avril 2009 - 26 févr. 2009 à 01:27
 loupius - 26 févr. 2009 à 02:13
Bonjour, j'ai un petit problème avec mon compilateur c++;
voici un bout de code que j'essaie d'éxécuter en vain je ne vois pas à prioris l'erreur pourtant ça ne marche pas je ne sais pourquoi:

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

En tapant
[francis@localhost Bureau]$ gcc -o pet petit.cc

J'obtiens:

/home/francis/tmp/ccg9T1bg.o: In function `main':
petit.cc:(.text+0x1c): undefined reference to `std::cout'
petit.cc:(.text+0x21): 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*)'
/home/francis/tmp/ccg9T1bg.o: In function `__static_initialization_and_destruction_0(int, int)':
petit.cc:(.text+0x50): undefined reference to `std::ios_base::Init::Init()'
petit.cc:(.text+0x55): undefined reference to `std::ios_base::Init::~Init()'
/home/francis/tmp/ccg9T1bg.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld a retourné 1 code d'état d'exécution

S'il vous plaît au secours; Merci
A voir également:

2 réponses

Mais 'cout' c'est du C++ !!!
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
26 févr. 2009 à 01:38
Salut,
Effectivement, tu utilises gcc au lieu de g++ pour le C++.
g++ -o pet petit.cc 
0
Goupfrancis Messages postés 21 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 2 avril 2009
26 févr. 2009 à 01:48
merci ça marche
0
C'est bizarre, en étant sur Linux:
1) avec fichier.c gcc refuse #include <iostream> (je ne parle même pas du using namespace std;), ce qui me parait logique.
2) avec fichier.cc ou fichier.cpp gcc ne refuse ni #include <iostream>, ni using namespace std; mais après c'est comme sur l'exemple donné.
3) avec g++, évidemment ça passe.
C'est donc le cas n° 2 que je ne comprends pas. Aurais-tu une idée?
Merci.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842 > loupius
26 févr. 2009 à 02:09
Oui, c'est normal.
En fait, .cc signifie à gcc qu'il s'agit d'un fichier C++. Donc il ne va pas gueuler à la compilation. Par contre, l'édition des liens se fera en C. D'où le message d'erreur dans le cas 2. Par contre si tu mets ton fichier en .c, gcc saura qu'il s'agit d'un fichier C, donc il gueulera à la compilation (cas 1).
0
loupius > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
26 févr. 2009 à 02:13
Ok, j'ai pas tilté sur les 2 passes. J'aurais dû car le type de message est différent.
Merci.
0