Programme très simple ne fonctionne pas en c ++?
Je ne peux pas comprendre pourquoi cela ne fonctionne pas...
Je travaille sous Linux
g++ ne fait rien
gcc affiche les éléments suivants:
/tmp/ccyg7NDd.o: In function `main':
test.cc:(.text+0x14): undefined reference to `std::cout'
test.cc:(.text+0x19): 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*)'
test.cc:(.text+0x21): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
test.cc:(.text+0x29): undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))'
/tmp/ccyg7NDd.o: In function `__static_initialization_and_destruction_0(int, int)':
test.cc:(.text+0x51): undefined reference to `std::ios_base::Init::Init()'
test.cc:(.text+0x56): undefined reference to `std::ios_base::Init::~Init()'
/tmp/ccyg7NDd.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
Code:
#include<iostream>
#include<stdio.h>
int main(){
std::cout<<"test "<<std::endl;
return 0;
};
source d'informationauteur spatara | 2012-02-25
Vous devez vous connecter pour publier un commentaire.
ou
gcc
est le compilateur C, vous devez utiliserg++
(ou utilisezgcc
avec l'option-lstdc++
comme souligné par d'autres). Si rien n'est imprimé après l'utilisation deg++
est ce que tu veux dire, vous devez exécuter le binaire compilé après la construire (c'est à dire quandg++
complète).main.cpp:
Construire:
Exécuter:
De sortie:
C'est un code C++, et donc vous devriez utiliser g++ et pas de gcc. Aussi
#include<stdio.h>
n'est pas nécessaireJe pense que vous avez tort, en lien avec la commande du compilateur C au lieu de le compilateur C++ de commande. Essayez ceci:
Je pense que la question sous-jacente est que le nom binaire "test" est en fait déjà en dehors du système linux. En tapant "man test" affiche un manuel pour le test binaire. J'ai eu exactement le même problème. Il a été décidé de simplement compiler le binaire à autre chose que "test".
Compilateurs délimiter par des espaces. Mettre un espace entre tous les mots clés et <<. Donc cout<< doit être cout <<. Même avec des <
source d'information