2009-07-22 3 views
24

이렇게해야 할 것입니다. Leopard의 Xcode 최신 버전 (사실 모든 버전의 Xcode는 GCC 4.0.1 및 GCC 4.2)을 알고있을 것입니다. GCC 4.2는 기본 시스템 컴파일러이고 GCC 4.2는 Xcode 프로젝트 설정에서 설정할 수있는 선택적 컴파일러입니다.Mac OS X Leopard의 기본 컴파일러로 GCC 4.2 설정

누구나 GCC 4.2를 모든 옵션의 기본 컴파일러로 설정하는 방법을 알고 있습니까? Xcc에서 내가하는 일과 상관없이 GCC 4.2가 아닌 GCC 4.0.1을 사용하는 것이 바람직합니다. 나는 단순히 경로 변수 또는 일부를 변경하는 경우라고 가정하고 있지만이 경우에 난처한 상황에 처하게됩니다.

도움을 주시면 감사하겠습니다. 감사.

답변

19

명령 줄 사용법은 스크립트를 구성 : 당신이 원하는 경우 복원 할 수 있도록

cd /usr/bin 
    rm cc gcc c++ g++ 
    ln -s gcc-4.2 cc 
    ln -s gcc-4.2 gcc 
    ln -s c++-4.2 c++ 
    ln -s g++-4.2 g++ 

는 현재 링크 대상의 기록을 확인합니다.

당신은/usr/bin에 (예를 들어, $HOME/bin을), 그리고이

을 심볼릭 링크를하기 전에 나는이 영향을 미치는 여부를 테스트하지 않았습니다, 시스템 전체의 설정을 변경 PATH에 디렉토리를 추가하지 않으려면 내가 Xcode (명령 줄 만 사용)를 사용하지 않았기 때문에 Xcode 프로젝트.

+0

이 스크립트는'gcc_select' 스크립트에 의해 처리되었지만 Leopard/Xcode 3.1이 더 이상 제공하지 않는 것 같습니다. 나는 오랫동안 OS X을 사용하지 않았기 때문에 약간의 연락을 받았습니다 ... – ephemient

+0

고맙다. 문제가 해결되었습니다. 다른 사람이이 작업을 계획하고 있다면 다른 디렉토리에 새 심볼릭 링크를 두는 것이 좋습니다. 원래의 설정으로 되돌리려면 심볼릭 링크를 삭제하거나 다른 심볼릭 링크로 이동해야합니다. 예배 규칙서. – Cromulent

+0

Martin, 관련 질문, 어떻게 당신이 알 수있는 setup.py/pydistutils.cfg CC와 -arch를 사용 하시겠습니까? 예를 들어, 내 gcc-4.2에는 /usr/bin/i686-apple-darwin8-g++-4.2.1이 없으므로 gcc-4.2 -arch ppc 만 필요합니다. 감사합니다. – denis

18

프로젝트 또는 대상 정보 윈도우에서 빌드 설정 "C/C++ 컴파일러 버전"(GCC_VERSION)을 설정하십시오.

또는 대상 정보 윈도우에서 "시스템 C 규칙"을 원하는 GCC 버전으로 변경할 수 있습니다.

업데이트 : 명령 줄과 관련하여 Leopard는 기본 컴파일러가 무엇인지 결정해야합니다. Autotools와 같은 도구를 사용하여 다른 컴파일러를 사용하려면 configure 변수를 정의하는 것이 좋습니다. 모든

CC=gcc-4.2 ./configure 

또는

export CC=gcc-4.2 
+0

불행히도 나는 이미 그것들에 대해 알고 있지만 프로젝트마다 있습니다. 나는 당신이 commmand 줄에서 GCC를 호출 할 때 이야기하고있다. Xcode에서 어떤 규칙을 설정했는지에 관계없이 명령 행에서 항상 GCC 4.0.1을 사용합니다. – Cromulent

+0

죄송합니다. 나는 그것을 업데이트하고있다 – IlDan

+6

rm/ln -s 솔루션과 비교할 때 'export CC = gcc-X.Y'가 더 실용적이다. 잘못되었을 때 쉽게 되돌릴 수 있으며 사용자/시스템 전체를 쉽게 설정할 수 있으며 .bash_profile (또는 원하는 쉘 rc)을 편집하기 만하면됩니다. – lsdr

16

이후 애플이나 다윈 포트 (GNU/리눅스에 존재), 내가 엑스 코드와 안전을하고자하는 시스템 컴파일러의 기본 버전을 변경하는 gcc_select 프로그램이 (그리고 시스템의 나머지 부분) 심볼릭 링크는 그대로두고 GCC의 버전을 재정의하는 환경 변수를 설정하는 것이 좋습니다. 내의 .profile 파일에서

나는

export CC=/usr/bin/gcc-4.2 
export CPP=/usr/bin/cpp-4.2 
export CXX=/usr/bin/g++-4.2 

을 다음했다 그리고 나는 성공적 소스에서 GCC 4.2 다음과 같은 라이브러리를 컴파일.

  • OpenSSL을
  • libjpeg
  • 의 libpng
  • ZLIB

그러나

  • GST ... 나는 일을 밀어 가져올 수 없습니다.39 환경 변수를 인정하여 GCC로 부스트 컴파일하기 4.2 gcc v4.2를 가리키는/usr/bin /에서 심볼릭 링크를 변경해야했다.

    오랜 기간 동안 Boost 라이브러리가 컴파일되는 동안 GCC 4.2 심볼릭 링크를 원래의 시스템 버전 인 gcc-4.0으로 복원했습니다.

  • +0

    시도하고 내 기본 컴파일러를 변경하지 않았다. – user124384

    2

    CC env가 무시되고 자주 전환되는 상황을 만들어야하기 때문에 파이썬에서 간단한 gcc_select를 작성했습니다. 내가 여기에 게시 할 수 있다고 생각 했어. 4.0 또는 4.2 또는 arg가없는 현재의 심볼릭 링크를 보려면 arg로 호출하십시오. 4.0 및 4.2 이외의 다른 버전이있는 경우 수정이 필요합니다 :

    #!/usr/bin/python 
    import sys 
    import os 
    
    os.chdir('/usr/bin') 
    
    files = ['cc', 'gcc', 'c++', 'g++'] 
    
    if '4.0' in sys.argv: 
        ver = '4.0' 
    elif '4.2' in sys.argv: 
        ver = '4.2' 
    else: 
        print "Unknown gcc version. Current setting:" 
        os.system('ls -al %s' % ' '.join(files)) 
        sys.exit(1) 
    
    os.system('rm %s' % ' '.join(files)) 
    for f in files: 
        os.system('ln -s %s-%s %s' % (f, ver, f)) 
    
    print "Changed to gcc version %s" % ver 
    
    3

    임 내 경험 (제한)의 .profile에 CC를 변경하면 사자 (10.7.2)을 디폴트는 i686-사과 darwin11-LLVM을 변경하지 않습니다 -gcc-4.2. 부분 : ls -la /usr/bin | grep .*gcc.* :.

    lrwxr-xr-x  1 root wheel  12 25 oct 19:31 cc -> llvm-gcc-4.2 
    lrwxr-xr-x  1 root wheel  12 25 oct 19:31 gcc -> llvm-gcc-4.2 
    lrwxr-xr-x  1 root admin  32 25 oct 19:31 llvm-gcc-4.2 -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2 
    

    나는이를 깨고/빈/GCC-4.2 마틴 V 당의 usr 내 자신을 추가하는 방법에 대한 경계이다 Löwis의이 애플의 SYM의 연결과 아무 상관이 있는지 궁금 대답.

    2

    내가 틀렸을 수도 있지만 Xcode-select의 목적이라고 생각했습니다.

    xcode-select --switch /path_to_tool_suite 
    

    나는 나는이 100 % 아니지만, 나는 그것이 터미널과 컴파일러를 사용하는 OS를 호출 다른 응용 프로그램을 포함한 모든 프로그램의 기본 설정됩니다 생각 말했듯이.