2013-05-24 1 views
0

OpenMP를 사용해야하고 gcode 버전 4.2.something과 함께 제공되는 Xcode 명령 행 도구는 gcc 버전 4.8로 업그레이드하려고합니다. 나는 gcc4.8을 설치했다. 나는 이것을했다 -Mac OS X 10.7에서 C 및 C++ 컴파일러 변경

$ sudo rm /usr/bin/gcc /usr/bin/g++ 
$ sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.8 

g ++에 대한 비슷한 링크. 이제/usr/bin에 gcc 링크가 만들어졌습니다. 내가 $ 1! -la는/usr/빈

을 수행 할 때 내가는/usr/bin에 GCC를 볼 수 있습니다 그리고 그것은 gcc가-4.8 가리키는

$ ls -la /usr/bin | grep gcc 

을 수행 할 때 또한 올바른 심볼릭 링크를 볼 수 있습니다.

그러나 시스템은 단순히 gcc를 무시합니다. 마치 존재하지 않는 것처럼 보입니다./usr/bin이 PATH 변수에 있습니다. 그러나 gcc [tab complete]가 표시되지 않습니다.

$ gcc 
-bash: gcc: command not found 

모든 C 프로그램을 컴파일하면 이제/usr/bin/cc에있는 cc가 사용됩니다. 나는 그것을 얻지 않는다. gcc가 xcode CLTools에 있던 현재 심볼릭 링크를 제거하고 새로운 심볼릭 링크를 만들었습니다. 내가 정말로 거의하지 않았다는 것을 고려할 때 나는 무엇을 잘못 했는가?

감사합니다.

+0

ln 명령에 대한 args가 잘못된 방법입니까? –

+0

'/ usr/bin/gcc-4.8'을 명령 행에 입력하면 어떻게됩니까? –

+0

찾을 수 없다고 가정합니다. ln -s는 대상이 존재하지 않아도됩니다. '/ usr/bin/gcc-4.8'에'/ usr/bin/gcc'를 가리키는 심볼릭 링크가있을 것입니다. 이것은 확실히 당신이 원하는 것이 아닙니다. –

답변

1

심볼릭 링크를 만드는 구문이 올바르지 않습니다. ln의 첫 번째 인수는 으로 지정합니다. ln에 대한 매뉴얼 페이지에서

sudo ln -s /usr/bin/gcc-4.8 /usr/bin/gcc 

:

SYNOPSIS 
    ln [-Ffhinsv] source_file [target_file] 
    ln [-Ffhinsv] source_file ... target_dir 

이것은 "소스"와 "대상"으로, 약간의 혼란이 어느쪽으로 해석 될 수있다 (즉, 링크 또는 대상 target_file입니다 ln 명령의 대상?). man 페이지는 나중에 이것을 분명히합니다 :

하나 또는 두 개의 인수가 주어지면, ln은 기존 파일 source_file에 대한 링크를 작성합니다. target_file이 주어지면 링크는 그 이름을 갖습니다. target_file은 링크를 배치 할 디렉토리 일 수도 있습니다. 그렇지 않으면 현재 디렉토리에 놓입니다. 디렉토리 만 지정되면 source_file의 마지막 구성 요소로 링크됩니다.

+0

그게 효과가있다. 왜 내가 다른 방향으로하고 있는지 모르겠다. 이 질문을 별도의 질문으로해야할지 모르겠지만 cmake가 Clang 대신 gcc와 g ++를 사용하도록하려면 어떻게해야합니까? symlink가 올바르게 설정되었지만 cmake는 OpenMP를 지원하지 않는 clang 4.2를 사용하기로 선택했기 때문에 아무런 도움이되지 않습니다. C 및 CXX 플래그를 내보내려고했는데 gcc -v가 올바른 버전을 보여주기 때문에 거기에 있다는 것을 알고 있습니다. – maverick1989

관련 문제