Sto lavorando su OS X 10.7 (Lion). Ho installato gcc 4.7 da macports:
sudo port install gcc47
Sembra funzionare correttamente:
$ /opt/local/bin/gcc-mp-4.7 -v
(...)
gcc version 4.7.0 (GCC)
Ora sto provando a cambiare il compilatore predefinito usando port select:
$ sudo port select gcc mp-gcc47
Selecting 'mp-gcc47' for 'gcc' succeeded. 'mp-gcc47' is now active.
Copia gcc binary in / opt / local / bin / gcc, che funziona correttamente:
$ /opt/local/bin/gcc -v
(...)
gcc version 4.7.0 (GCC)
Cambia anche gcc predefinito:
$ which gcc
/opt/local/bin/gcc
Ma eseguire questo predefinito non funziona:
$ 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
Questo binario "i686-apple-darwin11-llvm-gcc-4.2" è la versione gcc originale fornita da Apple; Non so perché tenti di cercarlo in / opt / local / bin, o anche perché tenti di eseguirlo. Se creo symlink, chiama semplicemente questo binario, che non è quello che voglio:
$ 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)
Come risolverlo, per far funzionare correttamente gcc, semplicemente chiamando "gcc"? Per quanto ne so, c'era lo strumento gcc_select nel vecchio OS X, ma il mio sistema non ce l'ha.