gcc update von 3.3 auf 4.1 (mit fink)

C

cherrybonbon

Neues Mitglied
Thread Starter
Dabei seit
23.09.2006
Beiträge
7
Reaktionspunkte
0
Hoi Leute,

ich hab mir über fink einen neuen gcc (4.1) geholt, da fink meinte "You are using a version of gcc which is known to produce incorrect output from C++ code under certain circumstances.". Nun denn, nach 4 Stunden hatte ich dann auch mein "gcc-4" im /sw/bin.

Wie sage ich meinem Rechner jetzt, dass er nicht länger den alten gcc verwenden soll? "gcc -v" sagt mir immer noch, dass 3.3 verwendet wird.

In meiner .bashrc hab ich auch ganz vorne /sw/bin stehn (noch vor /usr/bin/). Ich hab jetzt auch /sw/bin/gcc-4 auf /sw/bin/gcc umgeändert, ohne Erfolg :)

mfg cherry
 
Hallo,

ertstmal bin ich verwundert dass du die Version 3.3 hast? Wo hast du die denn her? Apple sollte schon ne weile die - auch nicht ganz glückliche - Version 4.0.x mit Xcode zusammen ausliefern.

Ansonsten zu deinem Problem zwei dinge:

1. Terminal beenden und neu starten damit die Änderungen wirksam werden ;-)

2. which gcc verrät/sollte dir verraten welches gcc ausgeführt wird! (bei mir /usr/bin/gcc Unter umständen musst du deine Finkvariante dann noch dorthin verlinken bzw. die Version an der Stelle löschen?

EDIT
Habe mir das gerade nocheinmal angeschaut - konnte das trotz wartender DA nicht lassen! =)

also ich bin kein UNIX Experte aber mein Tip sieht so aus:

which gcc gibt dir an was ausgeführt wird wenn du gcc
aufrufst. Bei mir ist das /usr/bin/gcc .

Mit ls -l /usr/bin/gcc kannst du dir nun anzeigen lassen wohin dieser Link verlinkt ist (ich gehe davon aus dass es ein Link ist =) )
bei mir ist das gcc-4 - also aus dem selben Verzeichniss. Nun würde ich an deiner Stelle diesen Link löschen und ihn dann neu setzen. Dies würde dann wie folgt gehen:


rm /usr/bin/gcc
ln -s /sw/bin/gcc-4 /usr/bin/gcc


Wenn das jetzt die absolut falsche Vorgehensweise ist so möge mich bitte jemand korrigieren aber ich bin mir sicher das es so gehen wird! Du musst nur dran denken deine /sw/bin/gcc wieder in /sw/bin/gcc-4 umzubennen. Klar kannst du den Link auch entsprechend anders setzen ich würde dir aber davon abraten! Schon alleine weil Du so nicht mehr durchblicken kannst welches gcc den zum Teufel nochmal aufgerufen wird =)

EDIT ENDE

Grus marsjo
 
Zuletzt bearbeitet:
Jo passt danke :)

Was hab ich jetzt im Endeffekt gemacht:
Code:
$ mv /usr/bin/gcc /usr/bin/gcc.old
$ ln -s /sw/bin/gcc-4 /usr/bin/gcc
$ gcc -v
...
gcc version 4.1.0

Die Warnung von Fink, dass unter bestimmten Umständen fehlerhafter C++Output von dieser gcc-version produziert wird, kommt zwar trotzdem noch.. Bin aber jetzt zu müde um mir diesbezüglich noch den Kopf zu zerbrechen.

Viel Spaß noch mit deiner DA :)
 
Danke werde ich haben ist zum glück reinste Theorie .. muss man sich zumindest nur mit Latex rumschlagen und nicht mit anderem murks ala C++ =)

Viel Spass dir noch beim kompilieren =)

Gruß jo
 
Was machst du genau mit Fink? Sehe ich das richtig, dass du dir da was selbe kompilst? Dann könnte es sein dass du nun erneuert ./configure aufrufen musst und/oder sogar mit hilfe von --with den compilerpfad angeben musst!

Probiere hierzu mal

./configure --help

Bin mir nicht ganz sicher aber ich meine sowas müsste gehen! =)
 
Nein, ich will trac installieren und dabei hat fink die oben erwähnte Warnung ausgespuckt. Da ich ja nichts zu tun habe, dachte ich mir hol ich mir eben den neuen gcc - kann ja nicht schaden :)

Was ich weiß holt sich Fink ja den kompletten Quellcode vom Netz und macht .deb-Datein draus, die dann mit dpkg installiert werden. Jetzt bin ich gespannt wie ein Gummiringerl, obs hinhaut - oder ob der neue gcc mir einen Strich durch die Rechnung macht.
 
sudo gcc_select 4.1
 
Also wenn Du die Umstände nicht kennst, unter denen da falscher Code erzeugt wird würde ich Dir ja zur Apple 4.0.x Version raten

Alex
 
Spacemojo schrieb:
sudo gcc_select 4.1

Code:
$ sudo gcc_select 4.1
Password:
usage: gcc_select [-n] [-force] [2 | 3 | 3.x] [-h | --help] [-v | --version]
                  [-l | --list] [-root]
       Invalid argument (4.1).

$ sudo gcc_select 4.1.0
usage: gcc_select [-n] [-force] [2 | 3 | 3.x] [-h | --help] [-v | --version]
                  [-l | --list] [-root]
       Invalid argument (4.1.0).

$ sudo gcc_select --help

usage: gcc_select [-n] [-force] [2 | 3 | 3.x] [-h | --help] [-v | --version]
                  [-l | --list] [-root]

2          Select gcc 2.95.2 as the default compiler.
3          Select gcc 3.1 as the default compiler.
3.x        Select gcc 3.x as the default compiler.
-force     Ensure the links are correct for the specified version
           even if it maches the current default version.
-h         Display this help info.
--help     Same as -h.
-l         List available compiler versions.
--list     Same as -l.
-n         Show commands to do selection but do not execute them.
-root      Skip 'root' check and assume you have root access.
-v         Display gcc_select version number.
--version  Same as -v.

Es scheint, als könnte ich nur 2, 3 oder 3.x als switch angeben.

Vielleicht noch interessant:
Code:
$ gcc_select
Current default compiler:
gcc version 3.3 20030304 (Apple Computer, Inc. build 1666)

$ gcc -v
Using built-in specs.
Target: powerpc-apple-darwin7
Configured with: ../configure --prefix=/sw --prefix=/sw/lib/gcc4 
--disable-multilib --enable-languages=c,c++,fortran,objc,java 
--infodir=/sw/lib/gcc4/share/info --with-gmp=/sw --with-included-gettext 
--host=powerpc-apple-darwin7 --with-as=/sw/lib/odcctools/bin/as 
--with-ld=/sw/lib/odcctools/bin/ld --with-nm=/sw/lib/odcctools/bin/nm
Thread model: posix
gcc version 4.1.0
 
Zurück
Oben Unten