PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : gcc 3.0.2 macht schwirigkeiten


Spinner
13.11.01, 19:05
mhhh, ich bin in der zwickmühle stell ich diesen Beitrag ins installieren Forum ober doch lieber zu den Programmiern, naja ich schreib erstmal weiter ;)

Ok ich habe, weil ich unbedingt mpeglib3 installieren wollte, mein gcc auf den neuesten stand gebracht, spricht version 3.0.2. Dann konnte ich auch mpeglib3 installieren. Das war dann aber auch schon alles. mit weiteren paketen, die ich mit der alten version gcc-2.95.2 bereist erfolgreich übersetzt hatte, ging dann gar nichts mehr. QT3 und avifile, um nur 2 zu nennen. Mit einem Update der binutils erziehlte ich nur einen Teilsieg (QT3 ging dann), aber es gibt immer noch abbrüche bei anderen programmen die ich mir nicht erklären kann. :confused:

Hab ich irgentwas vergessen ?
evt optionen beim installieren von gcc ? ./configure --???
Wie kann ich den Gesammtsieg erlangen ?
Warum kann ich nicht die Finger von sowas lassen ?
Oder, liegt das vileicht an was ganz was anderem ?


Ich hoffe ihr könnt mir helfen

Ronny

jgbauman
14.11.01, 01:57
Alle C++ Libraries übersetzt mit dem gcc-2.95.x sind mit gcc-3.x inkompatibel. Also entweder alles mit 2.95.x oder alles mit gcc-3.x .
Da leider noch nicht alles mit an C++ mit gcc-3.x so reibungslos funktioniert, wird es wohl noch eine Weile dauern bis man problemlos umsteigen kann. Wenigstens soll das C++-ABI für IA32 Linux ab 3.x stabil bleiben und bei neueren Compilern die Zusammenarbeit dann klappen.

Für reine C Projekte ist der gcc-3.x ansonsten schon ganz brauchbar, solange sich der Code halbwegs an ANSI/ISO C hält, und nicht furchtbar viele Erweiterungen nutzt.

Also nur solange Du alle C++ Libraries die Du fuer dein Projekt brauchst mit 3.x übersetzen kannst, und sie von Programmen, die die selben mit 2.95.x übersetzen Libraries brauchen, trennen kannst macht g++ 3.0 Sinn.

Spinner
14.11.01, 09:25
mmhhhhhhh ... klingt logisch, das was ich verstanden habe ;)

Ich weis das die alte version im Ordner /usr/bin installiert ist und die neue nach /usr/local/bin das selbe dürfte demach auch mit den libs passiert sein. Mir ist ist nur nicht ganz klar wie ich vor den übersetzten den passende Kompiler (ich hoffe das heist so) auswählen kann, dat muss doch irgentwie gehen.

In welcher Datei steht der aktuelle PFAD zu cpp c++ oder was auch immer ?
Oder kann man das Dynamisch machen ?

jgbauman
14.11.01, 11:38
Meist hilft es vor dem ./configure die shell-Variablen
CC=/usr/bin/gcc
CXX=/usr/bin/g++
CPP=/usr/bin/g++

zu setzten.
Ansonsten Makefile editieren.

Spinner
14.11.01, 16:48
die 3 Befehle fuktionieren nur bedingt. ich hab mir jetzt damit geholfen alles was in Ordner '/usr/local/bin' cpp oder so ähnlich heit in eine unterordner zu schieben, und schon nimmt er wieder die alte version. Ich bin aber langfristig nicht zufrieden mit dieser variante. eigentlich will ich es so haben das SuSe grundsätzlich die version 2 zum übersetzten nimmt, ausser ich sage vorher das er ver 3 nehmen soll.

das muss doch irgentwie gehen.

erstmal Thx für die Hilfe