Re: GCC updaten

From: Jens Rehsack <rehsack(at)liwing.de>
Date: Sun, 03 Aug 2003 02:29:01 +0200

On 02.08.2003 20:38, Christian Lackas wrote:

> Hallo Leute,
>
> ich verwende ein FreeBSD 4.8-STABLE mit gcc 2.95.4.
> Für mein Software-Projekt würde ich aber gerne gcc 3.2.3 verwenden, da
> ich einige C++ Features brauche, die 2.95.4 noch nicht implementiert.

[...]

> Ich gehe also davon aus, dass es nicht möglich ist nur mein Programm mit
> 3.2 zu kompilieren, wenn der Rest des (Port-)Systems auf
> 2.95er-Kompilaten basiert, oder?

Genrell sollte dazu das Flag USE_GCC=32 (o.ä) benutzt werden.
Schau mal in die ports/Mk/bsd.ports.mk.

> Wie würded ihr das lösen? Durch die vielen Abhängigkeiten von
> ImageMagick stelle ich es mir relativ aufwendig vor nur diesen Port (+
> Dependencies) mit 3.2 zu kompilieren. Ausserdem soll das ganze
> anschliessend auf mehreren FreeBSD-Rechner kompiliert werden können.

Wenn es nur das eine, für Dich selbst zu nutzende Paket sein soll,
kannst Du probieren, Dir mit 'PREFIX=/some/where/else' einen anderen
Pfad für das ImageMagic zu definieren und dann statisch gegen dieses
zu linken. Ist zwar auch nicht schön, sollte aber Dein Problem
lösen.

> Gibt es da einen einfachen Ausweg?
> Oder kann man gar sein ganzes System auf den neuen gcc umstellen? Oder
> auch nur die Ports?

env USE_GCC=32 portupgrade -rRfv ImageMagic ???
LDFLAGS=-static

> Mit GCC 3.3 sieht es übrigens genauso aus.

War zu erwarten.

> Gruss
> Christian
>
> [1] Fehlermeldung
> TRasterImage.o: In function `TRasterImage::GetImage(TPalette const&, float, float, unsigned)':
> /home/lackas/src/Reco/TRaster.h:71: undefined reference to `Magick::Geometry::Geometry[in-charge](unsigned, unsigned, unsigned, unsigned, bool, bool)'
> /home/lackas/src/Reco/TRaster.h:71: undefined reference to `Magick::Color::Color [in-charge](char const*)'
> [...]
>
> Die Fehlermeldungen sind insofern nicht sinnvoll, da das Objekt TRaster

Und nicht aussagekräftig, da ein bisschen der Kontext fehlt :-)

> mit ImageMagick gar nichts zu tun hat und in dortiger Zeile 71 erst
> recht nichts steht was irgendwas mit IM am Hut an. TRasterImage ist von
> TRaster abgeleitet und fügt die ImageMagick-Funktionalität hinzu.

Vielleicht (siehe dazu mehr unter <http://gcc.gnu.org/>) hast Du
ja recht, und die Objektdateien sind tatsächlich inkompatibel.
Da aber OpenOffice unter 4-STABLE auch mit gcc32 gebaut werden
soll, kannst Du Dir in dem Port ja mal 'ne Idee besorgen.

Ansonsten glaube ich nicht, dass die Shared-Libraries des gcc295
nicht gelesen werden können, vielleicht kann das ld (und dessen
Tools) aus der world aber nichts mit denen des gcc32 anfangen.
Nochmal: siehe ports/editors/openoffice - kann sicher nicht
schaden.

Schönes Wochenende noch,
Jens

To Unsubscribe: send mail to majordomo.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sun 03 Aug 2003 - 02:29:12 CEST

search this site