OSX에서 GCC를 업데이트하십시오
-
10-07-2019 - |
문제
그래서 저는 새로운 프로그래머이며 방금 GCC를 얻기 위해 MacBook에 Xcode를 설치했습니다. Xcode가 OSX에서 GCC를 얻는 유일한 방법이라고 생각합니다. 이제 C ++에서 Hello World 응용 프로그램을 실행할 때 G ++는 버전 4.0.1이라고 말하지만 G로 시작하는 명령을 찾으면 G ++ -4.2도 나타냅니다. 4.0.1이 아닌 4.2 기본값을 만드는 방법이 있습니까? 또한 최신 버전 4.4.0으로 GCC를 업데이트하는 방법이 있습니까?
편집 : 좋아, 그래서 나는 Macports를 설치하고 GCC4.4를 설치했으며 터미널에 GCC-MP-4.4로 표시되며 명령 및 물건과 같이 GCC_Select로 기본값을 어떻게 만드는가? 감사.
해결책
Macports를 설치하면 GCC Select를 설치 한 다음 GCC 버전을 선택할 수 있습니다.
/opt/local/bin/port install gcc_select
버전이 사용됩니다
port select --list gcc
버전 사용을 선택합니다
sudo port select --set gcc gcc40
다른 팁
나는 그것이 오래된 요청이라는 것을 알고 있습니다. 그러나 여전히 일부에게는 유용 할 수 있습니다. 현재 버전의 macports를 사용하면 포트 명령을 사용하여 기본 GCC 버전을 선택할 수 있습니다. 사용 가능한 GCC 버전을 나열하려면 다음을 사용하십시오.
$ sudo port select - -list gcc
Available versions for gcc: gcc42 llvm-gcc42 mp-gcc46 none (active)
GCC를 MacPorts 버전으로 설정하려면 :
$ Sudo Port Select-세트 GCC MP-GCC46
나는 이것을 달성하기 위해 부드러운 링크를 사용하는 것이 끔찍하고, 좋은, 끔찍한 생각이라고 말하기 위해 들었습니다.
소프트웨어 작성의 주요 사항 중 하나는 재생산성입니다. 매번 동일한 결과를 얻을 수 있기를 원합니다. 이 시스템은 너무 복잡하여 모든 보이지 않는 오류 원인을 줄이려고합니다.
소프트 링크를 갖는 것은 보이지 않는 오류의 원인입니다. 한 달 안에 잊어 버린 다음 다른 기계로 이동 한 다음 다른 결과를 얻는 이유가 궁금합니다. 또는 시스템을 업그레이드하려고 시도하면 이상하지 않기 때문에 이상한 오류가 발생합니다. 거기에 소프트 링크를 기대합니다.
또한 이는 작동하는 것이 보장되지 않습니다. 특히 올바른 시스템이 포함 된 파일을 얻을 수 있다는 것은 확실하지 않습니다. 파일은 GCC의 반복 사이에 확실히 변경되었습니다.
gcc_select는 예측 가능하게 작동하는 것과 동일한 작업을 수행하는 체계적인 방법입니다. 최악의 경우 버그 보고서를 제출하고 최종 수정 또는 직접 수정할 수 있습니다.
불행히도 :-( gcc_select는 어떤 컴파일러 Xcode가 사용하는지에 영향을 미치지 않으므로 Xcode에서 작업 해야하는 경우 갈 길이 아닙니다 (내가하는).
"gcc_select -l"사용
> gcc_select -l
GCC40 MP-GCC44
> GCC_SELECT MP-GCC44
안에 /usr/bin
유형
sudo ln -s -f g++-4.2 g++
sudo ln -s -f gcc-4.2 gcc
그렇게해야합니다.
상자에 여러 버전의 GCC를 가질 수 있습니다. g++
전체 경로를 사용하십시오 /usr/bin/g++
명령 줄 (GCC가 사는 위치에 따라 다름).
프로젝트를 컴파일하려면 어떤 시스템을 사용하는지에 따라 달라지고 Xcode에 대해 잘 모르겠습니다 (기본 ATM에 만족합니다).
편집하다
지금이 있습니다 xcrun
Mac에서 적절한 버전의 빌드 도구를 선택하도록 쿼리 할 수있는 스크립트. 와는 별개로 man xcrun
나는이 설명에 대해 Google에 글을 썼다 Xcode 및 명령 줄 도구 이를 사용하는 방법이 거의 요약되어 있습니다.
Apple이 Xcode의 기본 GCC로 배송되는 것은 무엇이든 (10.6, 4.0.1의 4.2.1) Apple Guys와 OS X에서 소프트웨어를 구축하기 위해 "표준"이 잘 테스트 (및 유지)됩니다. 다른 모든 것은 그렇지 않습니다. 따라서 소프트웨어를 개발하거나 GCC/OS X 베타 테스터가 되려면 두 번 생각하십시오.