Problème compilateur c++
Résolu
Goupfrancis
Messages postés
28
Statut
Membre
-
loupius -
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
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
Configuration: Linux Mandriva Firefox 3.0.5
A voir également:
- Problème compilateur c++
- Télécharger code::blocks avec compilateur - Télécharger - Langages
- Compilateur basic - Télécharger - Édition & Programmation
- Compilateur php - Télécharger - Divers Web & Internet
- Compilateur pdf - Guide
- Trouver un compilateur fortran - Forum Linux / Unix
2 réponses
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.
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.
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).
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).