web-dev-qa-db-fra.com

Un programme très simple ne fonctionne pas en C ++?

Je ne peux pas comprendre pourquoi cela ne fonctionne pas ...

Je travaille à Linux

g ++ ne fait rien

gCC imprime 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;

};
16
spatara
gcc main.cpp -lstdc++

ou

g++ main.cpp
77
kev

gcc est le compilateur C, vous devez utiliser g++ (ou utiliser gcc avec option -lstdc++ comme indiqué par d'autres). Si par rien n'est imprimé après avoir utilisé g++ Est ce que vous voulez dire, vous devez exécuter le binaire compilé après la construction (c'est-à-dire quand g++ complète).

main.cpp:

#include<iostream>

int main(){

std::cout<<"test "<<std::endl;
return 0;

};

Construire:

g++ main.cpp -o main

Exécuter:

./main

Sortir:

test 
18
hmjd

Ceci est un code C++ et vous devez donc utiliser g ++ et non GCC. Aussi #include<stdio.h> n'est pas nécessaire

4
sank

Je pense que vous vous connectez à tort avec la commande C compiler au lieu de la commande C++ compiler. Essaye ça:

g ++ Test.CC -O Test

2