Newsgroup: it.comp.lang.c++
Titolo: abc dell'abc

::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*
(std::basic_ostream<char, std::char_traits<char> >&))'
/tmp/ccehCLhI.o(.text+0x5c): In function
`__static_initialization_and_destruction_0(int, int)':
: undefined reference to `std::ios_base::Init::Init[in-charge]()'
/tmp/ccehCLhI.o(.text+0x8b): In function `__tcf_0':
: undefined reference to `std::ios_base::Init::~Init [in-charge]()'
/tmp/ccehCLhI.o(.eh_frame+0x11): undefined reference to
`__gxx_personality_v0'
collect2: ld returned 1 exit status
tutto sotto Linux Slackware 9.1
grazie per qualsiasi aiuto

::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*
(std::basic_ostream<char, std::char_traits<char> >&))'
/tmp/ccehCLhI.o(.text+0x5c): In function
`__static_initialization_and_destruction_0(int, int)':
: undefined reference to `std::ios_base::Init::Init[in-charge]()'
/tmp/ccehCLhI.o(.text+0x8b): In function `__tcf_0':
: undefined reference to `std::ios_base::Init::~Init [in-charge]()'
/tmp/ccehCLhI.o(.eh_frame+0x11): undefined reference to
`__gxx_personality_v0'
collect2: ld returned 1 exit status
qualcuno sa dirmi cosa debba fare per mandarlo in giusta compilazione?
uso Linux Slackware 9.1
grazie per qualsiasi aiuto

 # gcc ciccio.C 
Trattandosi di C++ e non di C devi invocare il g++ non il gcc.
Poi penso che l'estensione .cpp sarebbe piu' appropriata di .C,
ma questi sono solo gusti personali.
g.

 ma questi sono solo gusti personali.
A me sembra proprio che il compilatore ne tenga conto, quindi è meglio 
.cpp 
-- 
Luc


gcc tiene conto anche di .C (o almeno lo faceva quando ho guardato
l'ultima volta :)
 bye
	av.

 per non parlare poi se ci metto "using namespace std;"...
Parliamone, invece! Gli errori che ricevi ora sono dal linker, non dal
compilatore, quindi hai gia' fatto un passo avanti.
Aggiungi -lstdc++ al comando che adoperi per compilare.
 bye
	av.

 l'ultima volta :)
Lo fa ancora, altrimenti non sarebbe riuscito a compilare il
programma.
Gli errori vengono dal linker, che non vede il nome originale del
file e linka come se fosse C.
     Mauro

Andrea...grazie di cuore. Non solo perchè mi hai dato la soluzione, ma anche
perchè mi hai fatto capire in quale punto avrei dovuto cercarla. Poche
parole e brancolo un po' meno nel buio adesso...
Grazie a tutti e si... gcc non fa distinzione tra .C e .cpp
Riuscire a compilare (e linkare!) è già un bel primo passo. Ora posso
cominciare a salutare il mondo in più gaiarda maniera. Hallo word!!!
Grazie ancora

 # gcc esecc.C
teoricamente dovrebbe funzionare:
<QUOTE>
C++ source files conventionally use one of the suffixes .C, .cc, .cpp, .c++,
.cp, or .cxx; preprocessed C++ files use the suffix .ii. GCC recognizes
files with these names and compiles them as C++ programs even if you call
the compiler the same way as for compiling C programs (usually with the name
gcc).
</QUOTE>
pero' in pratica il primo metodo spesso causa problemi.....
<QUOTE>
However, C++ programs often require class libraries as well as a compiler
that understands the C++ language--and under some circumstances, you might
want to compile programs from standard input, or otherwise without a suffix
that flags them as C++ programs. g++ is a program that calls GCC with the
default language set to C++, and automatically specifies linking against the
C++ library.
</QUOTE>
Quindi prima di dire che non funziona, prova nel modo piu' ortodosso:
Prova a chiamare il file esecc.cpp e poi a fare
# g++ esecc.cpp
poi facci sapere....
Se anche cosi' non funziona allora effettivamente hai un problema.
Detto questo, voglio anche esprimere la mia inesperienza con GCC che uso
davvero poco.... Spero di essere stato in grado di aiutarti ugualmente.
Tommy