Problème compilateur c++

Résolu
Goupfrancis Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -  
 loupius -
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

loupius
 
Mais 'cout' c'est du C++ !!!
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
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   Statut Membre Dernière intervention  
 
merci ça marche
0
loupius
 
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   Statut Contributeur Dernière intervention   1 847 > loupius
 
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   Statut Contributeur Dernière intervention  
 
Ok, j'ai pas tilté sur les 2 passes. J'aurais dû car le type de message est différent.
Merci.
0