gcc update von 3.3 auf 4.1 (mit fink)

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von cherrybonbon, 08.02.2007.

  1. cherrybonbon

    cherrybonbon Thread Starter MacUser Mitglied

    Beiträge:
    7
    Zustimmungen:
    0
    MacUser seit:
    23.09.2006
    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
     
  2. marsjo

    marsjo MacUser Mitglied

    Beiträge:
    33
    Zustimmungen:
    0
    MacUser seit:
    27.11.2006
    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: 08.02.2007
  3. cherrybonbon

    cherrybonbon Thread Starter MacUser Mitglied

    Beiträge:
    7
    Zustimmungen:
    0
    MacUser seit:
    23.09.2006
    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 :)
     
  4. marsjo

    marsjo MacUser Mitglied

    Beiträge:
    33
    Zustimmungen:
    0
    MacUser seit:
    27.11.2006
    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
     
  5. marsjo

    marsjo MacUser Mitglied

    Beiträge:
    33
    Zustimmungen:
    0
    MacUser seit:
    27.11.2006
    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! =)
     
  6. cherrybonbon

    cherrybonbon Thread Starter MacUser Mitglied

    Beiträge:
    7
    Zustimmungen:
    0
    MacUser seit:
    23.09.2006
    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.
     
  7. Spacemojo

    Spacemojo MacUser Mitglied

    Beiträge:
    616
    Zustimmungen:
    21
    MacUser seit:
    16.05.2004
    sudo gcc_select 4.1
     
  8. below

    below MacUser Mitglied

    Beiträge:
    13.882
    Zustimmungen:
    1.086
    MacUser seit:
    15.03.2004
    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
     
  9. cherrybonbon

    cherrybonbon Thread Starter MacUser Mitglied

    Beiträge:
    7
    Zustimmungen:
    0
    MacUser seit:
    23.09.2006
    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
    
     
Die Seite wird geladen...