Article View: de.comp.lang.c++
Article #474Re: linker errors von gcc++ 2.6.3.
From: Ullrich von Bassewitz
Date: Tue, 26 Sep 1995 16:27
Date: Tue, 26 Sep 1995 16:27
38 lines
2026 bytes
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!uzReferences:
<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