i686-apple-darwin11-llvm-gcc-4.2를 실행하는 동안 macports gcc 선택 오류


13

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 도구가 있지만 내 시스템에는 없습니다.

답변:


17

bash가 gcc해시 되었기 때문일 가능성이 높습니다 .

운영

$ hash

해시 된 명령을 확인하십시오. / usr / bin / gcc가 목록에 나타나면 다음을 실행하십시오.

$ hash gcc

다시 해시 gcc합니다. 그 후에는 / opt / local / bin / gcc를 실행 hash하고 gcc를 실행하면 macports 버전을 실행 해야합니다. 물론 선택한 것이 있습니다.

/ B2S

편집 : zsh 사용자의 $ rehash경우 해시를 완전히 새로 고치려면 실행 하십시오.


1
글쎄, 나는 그 메커니즘의 존재에 대해조차 몰랐다. 감사합니다!
Mariusz Pluciński

0

나는 같은 문제가 있으며 이것이 올바른 해결책이 아닙니다. 당분간은 직접 전화하십시오.

$ gcc-mp-4.7 -v
Using built-in specs.
COLLECT_GCC=gcc-mp-4.7
COLLECT_LTO_WRAPPER=/opt/local/libexec/gcc/x86_64-apple-darwin11/4.7.0/lto-wrapper
Target: x86_64-apple-darwin11
    Configured with: ../gcc-4.7.0/configure --prefix=/opt/local --build=x86_64-apple-darwin11 --enable-languages=c,c++,objc,obj-c++,lto,fortran,java --libdir=/opt/local/lib/gcc47 --includedir=/opt/local/include/gcc47 --infodir=/opt/local/share/info --mandir=/opt/local/share/man --datarootdir=/opt/local/share/gcc-4.7 --with-libiconv-prefix=/opt/local --with-local-prefix=/opt/local --with-system-zlib --disable-nls --program-suffix=-mp-4.7 --with-gxx-include-dir=/opt/local/include/gcc47/c++/ --with-gmp=/opt/local --with-mpfr=/opt/local --with-mpc=/opt/local --with-ppl=/opt/local --with-cloog=/opt/local --enable-cloog-backend=isl --enable-stage1-checking --disable-multilib --enable-lto --with-as=/opt/local/bin/as --with-ld=/opt/local/bin/ld --with-ar=/opt/local/bin/ar --with-bugurl=https://trac.macports.org/newticket --with-pkgversion='MacPorts gcc47 4.7.0_3'
Thread model: posix
gcc version 4.7.0 (MacPorts gcc47 4.7.0_3) 

영구적 인 해결책을 찾을 때까지 도움이되는 희망

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.