GCC 3.2 - chyba linkovani C++

Jiri Masik masik na debian.cz
Úterý Listopad 26 16:45:27 CET 2002


zakkr na zf.jcu.cz (Karel Zak) writes:

> 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)

Nasel jsem si Vas prispevek, klicova je volba -O3, kompilator generuje
odkaz na __gxx_personality_v0 jen pri nizsi optimalizaci.

Jirka




Další informace o konferenci Linux