Problème compilateur c++
Résolu
Goupfrancis
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
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
A voir également:
- Problème compilateur c++
- Codeblocks avec compilateur - Télécharger - Langages
- Compilateur basic gratuit - Télécharger - Édition & Programmation
- Compilateur algorithme - Télécharger - Édition & Programmation
- Compilateur php - Télécharger - Divers Web & Internet
- Compilateur pascal - Télécharger - Édition & Programmation
2 réponses
Salut,
Effectivement, tu utilises gcc au lieu de g++ pour le C++.
Effectivement, tu utilises gcc au lieu de g++ pour le C++.
g++ -o pet petit.cc
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).