OS X 10.7 (Lion)에서 작업하고 있습니다. macports에서 gcc 4.7을 설치했습니다.
sudo port install gcc47
제대로 작동하는 것 같습니다.
$ /opt/local/bin/gcc-mp-4.7 -v
(...)
gcc version 4.7.0 (GCC)
이제 포트 선택을 사용하여 기본 컴파일러를 변경하려고합니다.
$ sudo port select gcc mp-gcc47
Selecting 'mp-gcc47' for 'gcc' succeeded. 'mp-gcc47' is now active.
gcc 바이너리를 / opt / local / bin / gcc에 복사하면 제대로 작동합니다.
$ /opt/local/bin/gcc -v
(...)
gcc version 4.7.0 (GCC)
또한 기본 gcc를 변경합니다.
$ which gcc
/opt/local/bin/gcc
그러나이 기본값을 실행하면 작동하지 않습니다.
$ 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
이 바이너리 "i686-apple-darwin11-llvm-gcc-4.2"는 원래 Apple에서 제공 한 gcc 버전입니다. 왜 / opt / local / bin에서 찾아 보려고하는지 또는 왜 전혀 실행하려고 시도하는지 모르겠습니다. symlink를 만들면 단순히이 바이너리를 호출하는데 이는 내가 원하는 것이 아닙니다.
$ 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)
간단히 "gcc"를 호출하여 gcc가 올바르게 작동하도록하려면 어떻게해야합니까? 내가 아는 한 구형 OS X에는 gcc_select 도구가 있지만 내 시스템에는 없습니다.