Saya sedang mengerjakan OS X 10.7 (Lion). Saya telah menginstal gcc 4.7 dari macports:
sudo port install gcc47
Tampaknya berfungsi dengan baik:
$ /opt/local/bin/gcc-mp-4.7 -v
(...)
gcc version 4.7.0 (GCC)
Sekarang, saya mencoba mengubah kompiler default dengan menggunakan port select:
$ sudo port select gcc mp-gcc47
Selecting 'mp-gcc47' for 'gcc' succeeded. 'mp-gcc47' is now active.
Ini menyalin binary gcc ke / opt / local / bin / gcc, yang berfungsi dengan baik:
$ /opt/local/bin/gcc -v
(...)
gcc version 4.7.0 (GCC)
Itu juga mengubah gcc default:
$ which gcc
/opt/local/bin/gcc
Tetapi menjalankan default ini tidak berfungsi:
$ 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
Biner ini "i686-apple-darwin11-llvm-gcc-4.2" adalah versi gcc asli yang disediakan Apple; Saya tidak tahu mengapa ia mencoba melihatnya di / opt / local / bin, atau bahkan mengapa ia mencoba menjalankannya sama sekali. Jika saya membuat symlink, itu hanya memanggil biner ini, yang bukan yang saya inginkan:
$ 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)
Bagaimana mengatasinya, untuk membuat gcc berfungsi dengan baik, hanya dengan memanggil "gcc"? Sejauh yang saya tahu, ada alat gcc_select di OS X yang lebih lama, tetapi sistem saya tidak memilikinya.