GCC 3.2 - chyba linkovani C++

Karel Zak zakkr na zf.jcu.cz
Úterý Listopad 26 09:31:16 CET 2002


On Mon, Nov 25, 2002 at 09:00:14PM +0100, Jiri Masik wrote:
> peak na argo.troja.mff.cuni.cz (Pavel Kankovsky) writes:
> 
> > On Mon, 25 Nov 2002, Martin Proks wrote:
> > 
> > >    $ gcc -o pokus pokus.cpp
> > >    /tmp/ccUEKiBl.o(.eh_frame+0x11): undefined reference to
> > >    `__gxx_personality_v0' collect2: ld returned 1 exit status
> > > 
> > > pri $gcc -c -o pokus.o pokus.cpp a vylistovani objektu v pokus.o
> > > (pomoci mc - F3) se tam objevi misto i18n_init, nebo jejiho ekvivalentu,
> > > to __gxx_personality_v0 + odkaz na funkci _Z9i18n_initv (ta je ale
> > > asi v poradku).
> > 
> > Hadal bych, ze existence manglovaneho public symbolu (_Z9i18n_initv)
> > primeje gcc k vygenerovani odkazu na symbol (__gxx_personality_v0), ktery
> > urcuje pouzite ABI. (Schvalne: co kdyby se k i18n_init pridalo extern "C"
> > nebo static?) Rekl bych, ze __gxx_personality_v0 je definovane v libstdc++
> > -- kterou asi g++ linkuje, zatimco gcc ne, ale je zajimave, ze kolega Zak 
> > to na Debianu uspesne prelozil s gcc i g++.
> > 
> 
> Myslim, ze starsi verze __gxx_personality nepouzivaly, mozna ze
> kolega Zak prekladal s gcc-2.95.

 Kolega Zak v tech ukazkach zretelne ukazal, ze to byla rada 3.2 (v
 debianu sidu je gcc (2.95), gcc-3.0 a gcc-3.2):
 
 $ gcc-3.2 --version
 gcc-3.2 (GCC) 3.2.1 20021111 (Debian prerelease)
 Copyright (C) 2002 Free Software Foundation, Inc.
 This is free software; see the source for copying conditions.  There
 is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
 PARTICULAR PURPOSE.
 
 Co se tyka __gxx_personality_v0 tak jsem to nasel v:

 $ objdump -t /usr/lib/gcc-lib/i386-linux/3.2.1/libstdc++.a | grep -c
 __gxx_personality_v0
 74
 
 Ten zdrojak jsem smazal takze uz to dal nezkoumam :-)
 
    Karel


-- 
 Karel Zak  <zakkr na zf.jcu.cz>
 http://home.zf.jcu.cz/~zakkr/


Další informace o konferenci Linux