🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #417

Re: Problem mit Templates und g++

#417
From: Ullrich von Bassewitz
Date: Sun, 17 Sep 1995 20:01
46 lines
2119 bytes
Benjamin Baermann (benni@kiffer.rbi.informatik.uni-frankfurt.de) wrote:
> Das Problem tritt auf bei der Verwendung eines Listentemplates, dass mit
> dem CC eigentlich ganz gut funktioniert. Der Compiler selbst gibt keine
> Fehlermeldungen aus. Die kommen nur vom Linker und sehen so aus:
>
> /bin/ld: Unsatisfied symbols:
> 	write__t5liste1ZiPi (code)
> 	_$_t5liste1Zi (code)
> 	reset__t5liste1Zi (code)
> 	__t5liste1Zi (code)
> collect2: ld returned 1 exit status

Welche Version von g++ verwendest Du?
g++ hat in einigen Versionen etwas seltsame Ansichten darueber, wo templates
instantiiert werden. Je nach Version erzeugt g++ die Funktionen

  1. entweder statisch zu jedem Modul das die template Klasse verwendet,
     oder

  2. in jedem Modul extern, oder

  3. in einem Modul extern, in den anderen nicht.


Die Version 2.5.8 verwendet 1., bei der Version 2.6.3 wird je nach Default
beim Uebersetzen 1. oder 2. verwendet, 2.7.0. sollte es wie bei 3. machen,
nur kann es sein, dass das nicht immer tut, d.h. das u.U. die Funktionen
ueberhaupt nicht instantiiert werden.

Abhelfen kann man, indem man Kommandozeilen-Parameter verwendet (z.B.
-f-no-external-templates) oder #pragmas, die dem Compiler sagen, wo er die
templates instantiieren soll.

Sehr viel genaueres kann ich Dir dazu nicht sagen, meine Erfahrungen damit
begruenden sich auf eigenen Aerger, den ich insofern "geloest" habe, das ich
mir die g++ Version rausgesucht habe, die es (fuer mich) korrekt macht.

Alles natuerlich ohne Gewaehr, kann auch voellig falsch sein :-)

Gruss


        Uz

-- 
Ullrich von Bassewitz                              uz@ibb.schwaben.com
Technical Details
Message-ID: <DF2FMJ.2oL@wuschel.ibb.schwaben.com>
Path: arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!uz
References: <43hcpt$30c@zeus.rbi.informatik.uni-frankfurt.de>

Show Full Headers
Complete Article Headers
Newsgroups: de.comp.lang.c++
Path: arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!uz
From: uz@wuschel.ibb.schwaben.com (Ullrich von Bassewitz)
Subject: Re: Problem mit Templates und g++
X-Newsreader: TIN [version 1.2 PL2]
Reply-To: uz@ibb.schwaben.com
Organization: Ingenieurbuero von Bassewitz
Message-ID: <DF2FMJ.2oL@wuschel.ibb.schwaben.com>
References: <43hcpt$30c@zeus.rbi.informatik.uni-frankfurt.de>
Date: Sun, 17 Sep 1995 20:01:30 GMT