🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: linker errors von gcc++ 2.6.3.

#474
From: Ullrich von Bassewitz
Date: Tue, 26 Sep 1995 16:27
38 lines
2026 bytes
Robert Mueller (mueller@n1) wrote:
> Hat jemand eine Ahnung, was da schief geht (und wie ein work-around  
> aussehen koennte?). Die Autoren der Datenbank haben gesagt, dass sie die  
> Datenbank bisher nur mit gcc++ 2.6.0 compiliert haben (verhalten sich  
> 2.6.3 und 2.6.0 so unterschiedlich?)

Ich sag's doch:

g++ und templates - zwei Welten begegnen sich.

Was passiert ist folgendes: Die Version 2.6.3 von g++ ist (wie auch schon
die Versionen davor), nicht schlau genug, herauszufinden, wo denn nun die
bei einer Template Instantiierung produzierten Funktionen hingepackt werden
sollen. Wenn der Programmierer nichts weiter unternimmt, und die
Implementation der Templates in ein Header File packt, dann werden diese
Template Funktionen in jedem .o File erzeugt, dessen .cc Gegenpart dieses
Header-File einbindet. Und diese Funktionen haben teilweise external
linkage, d.h. die so erzeugten .o Files lassen sich wegen duplicate
identifiers nicht linken.

Ich habe mich selber eine ganze Weile damit rumgeschlagen und es gibt meines
Wissens keine Moeglichkeit, den Fehler zu umgehen. Man kann auf die
Instantiierung von Templates mit diversen Kommandozeilenparametern und
#pragmas Einfluss nehmen, aber erstens sind das spezielle g++ Konstrukte,
zweitens ist bei g++ 2.7.0 schon wieder alles ganz anders...

Du kannst es mit einer anderen Compiler-Version probieren. 2.5.8 tut hier
einigermassen, hat aber andere, auch etwas nervige Bugs. 2.7.0 koennte auch
tun.

Gruss


        Uz


-- 
Ullrich von Bassewitz                              uz@ibb.schwaben.com
Technical Details
Message-ID: <DFItq4.p17@wuschel.ibb.schwaben.com>
Path: arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!uz
References: <448bec$bd9@kralle.zdv.Uni-Mainz.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: linker errors von gcc++ 2.6.3.
X-Newsreader: TIN [version 1.2 PL2]
Reply-To: uz@ibb.schwaben.com
Organization: Ingenieurbuero von Bassewitz
Message-ID: <DFItq4.p17@wuschel.ibb.schwaben.com>
References: <448bec$bd9@kralle.zdv.Uni-Mainz.DE>
Date: Tue, 26 Sep 1995 16:27:39 GMT