Ich arbeite an OS X 10.7 (Lion). Ich habe gcc 4.7 von macports installiert:
sudo port install gcc47
Es scheint richtig zu funktionieren:
$ /opt/local/bin/gcc-mp-4.7 -v
(...)
gcc version 4.7.0 (GCC)
Jetzt versuche ich, den Standard-Compiler mithilfe der Portauswahl zu ändern:
$ sudo port select gcc mp-gcc47
Selecting 'mp-gcc47' for 'gcc' succeeded. 'mp-gcc47' is now active.
Es kopiert gcc binary nach / opt / local / bin / gcc, was richtig funktioniert:
$ /opt/local/bin/gcc -v
(...)
gcc version 4.7.0 (GCC)
Es ändert auch die Standardeinstellung gcc:
$ which gcc
/opt/local/bin/gcc
Das Ausführen dieser Standardeinstellung funktioniert jedoch nicht:
$ gcc -v
gcc-mp-4.7: error trying to exec '/opt/local/bin/i686-apple-darwin11-llvm-gcc-4.2': execvp: No such file or directory
Diese Binärdatei "i686-apple-darwin11-llvm-gcc-4.2" ist die von Apple bereitgestellte gcc-Version. Ich weiß nicht, warum es versucht, es in / opt / local / bin zu suchen, oder warum es überhaupt versucht, es auszuführen. Wenn ich einen Symlink erstelle, ruft er einfach diese Binärdatei auf, was ich nicht will:
$ sudo ln -s /usr/bin/i686-apple-darwin11-llvm-gcc-4.2 /opt/local/bin
$ gcc -v
(...)
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
Wie kann man das Problem lösen, damit gcc richtig funktioniert, indem man einfach "gcc" aufruft? Soweit ich weiß, gab es das Tool gcc_select in älteren OS X-Versionen, aber auf meinem System ist es nicht verfügbar.