Zwei GCC parallel

Software besorgen und anwenden
Post Reply
Message
Author
Marc

Zwei GCC parallel

#1 Post by Marc »

Hallo, ich hab auf meinem Linux einen aktuellen gcc 3.2 compiler installiert. Jetzt würd ich aber gerne zusätlich die 2.95er version installieren. Wie mach ich das am geschicktesten? also rpm-paket vom gcc 2.95 kommt ja nicht in frage, weil der sich sonst über den neueren drüberinstallieren würde (wenn überhaupt) aber ich will den alten nur nebenbei haben. die commands (make, etc.) sind ja auch die selben, wie kann ich das problem umgehen? aliase erstellen oder? aber wie genau, weiss ich leider ned.

danke im voraus für paar tipps,
marc

Descartes

Re: Zwei GCC parallel

#2 Post by Descartes »

Bei RPM Paketen kannst du mit dem Parameter "--prefix" bestimmen, wohin das Paket installiert werden soll.
Zum Beispiel sollte "rpm --install --prefix /usr/local gcc-2.95.rpm" das RPM Paket unterhalb von /usr/local installieren.


Eine andere Möglichkeit wäre, das ganze aus den Quellcodes selbst zu kompilieren. Dann kannst du frei bestimmen, wohin das ganze installiert werden soll.

gcc 2.95 Quellcode herunterladen und entpacken
./configure --prefix=/opt/gcc-2.95 --language=c,c++
make bootstrap
make
make install

und vielleicht auch noch einen neueren gcc 3.3 ist auch kein Problem:

gcc 3.3 Quellcode herunterladen und entpacken
./configure --prefix=/opt/gcc-3.3 --language=c,c++
make bootstrap
make
make install

Bevor du nun mit deinem selbstkompilierten Kompiler loslegen kannst, musst du nur noch zwei Umgebungsvariablen setzen:

export PATH=/opt/gcc-2.95/bin:$PATH
export LD_LIBRARY_PATH=/opt/gcc-2.95/lib:$LD_LIBRARY_PATH
"which gcc" sollte nun /opt/gcc-2.95/bin/gcc ergeben

bzw. für den gcc 3.3:
export PATH=/opt/gcc-3.3/bin:$PATH
export LD_LIBRARY_PATH=/opt/gcc-3.3/lib:$LD_LIBRARY_PATH
"which gcc" sollte nun /opt/gcc-3.3/bin/gcc ergeben

Marc

Re: Zwei GCC parallel

#3 Post by Marc »

Danke Dir für die ausführliche Erklärung aber eine Frage hätte ich dann noch :)

Wenn ich ich den make Befehl benutze (nachdem ich den zusätzlichen gcc installiert habe) wird dann auf den neuinstallierten zugegriffen oder auf den gcc 3.2? so wie ich das lese wird da nun der alte herangezogen. gibt es keine möglichkeit beide parallel verwenden zu können? also so nach der art make blabla zieht den gcc 3.2 an und make295 blabla den gcc 2.95..?

schönes osterwochenende,
marc

Descartes

Re: Zwei GCC parallel

#4 Post by Descartes »

Wenn in deinem Makefile der Pfad auf das "gcc" Binary nicht hardcodiert drin steht (ist selten) sondern dort nur der Programmname drin steht (ist so üblich), dann wird das "gcc" Binary im Pfad gesucht. Hierzu werden alle Verzeichnisse die in der Umgebungsvariablen $PATH aufgeführt sind nach einem passenden Binary durchsucht. Sobald ein Treffer gefunden wurde, wird die Suche abgebrochen.

Wenn du nun wie in meinem Posting beschrieben den Pfad erweiterst und das "bin" Verzeichnis deines selbst kompilierten Compilers ganz an den Anfang stelltst, dann wird dort zuallererst nach "gcc" gesucht und auch gleicht gefunden. Bingo. Ein Aufruf von "make" verwendet dann in diesem Fall nicht den Compiler in z.B. /usr/bin/gcc sondern deinen selbstkompilierten Compiler.

Post Reply