Homebrew를 통해 GCC를 어떻게 설치합니까?


79

저는 Homebrew를 독점적으로 사용하고 있습니다 (즉, MacPorts 또는 Fink를 사용하지 않습니다). 또한 수동 설치를 최소한으로 유지하고 싶습니다. 1

… 그러나 GCC를 어떻게 설치할 수 있습니까?

우선, 물론 Xcode를 설치했지만 현재 버전은 최신 GCC와 함께 제공되지 않습니다 (최소 4.5 이상이 필요하지만 가장 최신 버전을 선호합니다) – 실제로는 제공되지 않습니다 적절한 GCC 를 가지고 있고 (Clang 만 배송), 이는 Homebrew의 문제인 것 같습니다.

사용자 지정 GCC 및 크로스 컴파일러 목록을 알고 있지만 실제로는 모든 설치에 이미 설치된 GCC가 필요합니다. 적어도 brewClang에 영향을주는 Lion의 링커 오류와 함께 실패하고 -use-gcc명백하게 작동하지 않습니다. 원인.

brew doctor GCC (4.2.x)가 설치되어 있지 않다는 것을 이미 알고 있습니다.


1 이전에는 MacPorts, Homebrew 및 일부 수동 설치를 혼합하여 유지 관리 및 버전 관리 문제를 겪었습니다. 다시 가고 싶지 않아요.


출력은 gcc --version무엇입니까? 나는 i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)MAS에서 Xcode를 설치했다. 또한 출력은 echo $PATH무엇입니까?
— Gio

@Gio 나는 같은 출력을 얻었다. $PATH일반적입니다 (결국 거의 빈 시스템입니다). /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin그러나 나는 이것이 중요하다고 생각하지 않습니다. homebrew-alt에서 제공하는 공식은 단순히 구식이며 Clang에서는 작동하지 않습니다.
— Konrad Rudolph

1
왜 Homebrew를 사용합니까? MacPorts는 여러 버전의 컴파일러를 관리하는 데 능숙합니다. 그리고 MacPorts는 Homebrew가 할 수있는 모든 것을 할 수 있습니다.
— Jeff Burdges

@JeffBurdges Homebrew가 더 좋습니다. 거의 모든 범주에서.
— Konrad Rudolph

2
어떻게 요? 솔직히 말해서, 나는 (a) 패키지 설명과 (b) 수학 패키지가 없기 때문에 Homebrew를 싫어합니다. 전반적으로 MacPorts는 Homebrew보다 6 배 많은 패키지를 가지고 있지만 그렇습니다. CPAN, CTAN, Caball 등과 같은 언어 패키지 관리자와 통합되기를 희망하지만 전반적으로 MacPorts에 만족합니다.
— Jeff Burdges

답변:


30

그 한 GCC의 수식에서 이동되었을 @Konrad 루돌프 제공하는 용액을 더 이상 완전히 정확하지 homebrew/dupes로 homebrew/versions. 설치할 GCC 버전을 선택할 수 있습니다. 예를 들어이 답변을 작성할 때 버전 4.5, 4.7 및 4.8을 사용할 수 있습니다. 여기서 사용 가능한 버전을 확인할 수 있습니다 .

즉, 다음을 사용하여 GCC 4.8을 설치할 수 있습니다

brew tap homebrew/versions
brew install [flags] gcc48

다음을 사용하여 사용 가능한 설치 플래그를 볼 수 있습니다

brew options gcc48

나는 이것을 시도하고 그것을 설치했지만 그것을 다음과 같이 죽는다 :gcc-4.8 hello.c gcc-4.8: error trying to exec 'as': execvp: No such file or directory
— Warren P

@WarrenP 당신은 어떤 것과 함께 설치 했습니까 [flags]? 내 컴퓨터에는 플래그없이 설치되어 정상적으로 작동합니다. gcc-4.8입력 파일없이 전화를 걸어 치명적인 오류가 발생하는지 확인하십시오. 또한 ls /usr/local/Cellar/gcc48/4.8.0/bin해당 디렉토리에 포함되어 있는지 확인하십시오 gcc-4.8.
— yihangho

gcc-4.8을 포함하고 gcc-4.8 --version실행되지만 보조 도구로 실행할 수 없으므로 as죽습니다.
— Warren P

흠 ... 솔직히 나는 이것을 해결하는 방법을 모른다. 좀 더 숙련 된 사용자를 기다려야 할 수도 있습니다.
— yihangho

2
@nkint 또는에 추가 alias g++='g++-4.8'하십시오 .bashrc.
— yihangho

38

사제 솔루션

내 자신의 질문에 대답하기 위해 homebrew-versions이제 상당히 최신 의 GCC 공식이 있습니다. 사용하여 설치할 수 있습니다

brew install [flags] https://raw.github.com/Homebrew/homebrew-versions/gcc48.rb

[flags]필요한 모든 언어를 포함해야하는 곳 (예 : ( --enable-cxx --enable-fortran))

이것은 접미사로 실행 파일을 설치합니다. 즉 충돌을 피하기 위해 gcc액세스해야 gcc-version합니다. 필요한 경우이 버전을 기본값으로 만들기 위해 적절한 심볼릭 링크를 만들 수 있습니다.

수동 설치

또한 , - - 날짜 GCC (글을 쓰는 시간 등)를 컴파일 할 수 있습니다 수동으로 다음 쉘 스크립트를 사용 :

VERSION=4.7.0
PREFIX=/usr/gcc-$(VERSION)
LANGUAGES=c,c++,fortran
MAKE=make
# Or
# MAKE='make -j 4' # to compile using four cores

brew-path() { brew info $1 | head -n3 | tail -n1 | cut -d' ' -f1; }

# Prerequisites

brew install gmp
brew install mpfr
brew install libmpc

# Download & install the latest GCC

mkdir -p $PREFIX
mkdir temp-gcc
cd temp-gcc
wget ftp://ftp.gnu.org/gnu/gcc/gcc-$VERSION/gcc-$VERSION.tar.gz
tar xfz gcc-$VERSION.tar.gz
rm gcc-$VERSION.tar.gz
cd gcc-$VERSION

mkdir build
cd build

../configure \
   --prefix=$PREFIX \
   --with-gmp=$(brew-path gmp) \
   --with-mpfr=$(brew-path mpfr) \
   --with-mpc=$(brew-path libmpc) \
   --program-suffix=-$VERSION \
   --enable-languages=$LANGUAGES \
   --with-system-zlib \
   --enable-stage1-checking \
   --enable-plugin \
   --enable-lto \
   --disable-multilib

$MAKE bootstrap

make install

# Uncomment for cleanup …
# cd ../../..
# rm -r temp-gcc

이것은 경로로 GCC를 스테이징합니다 /usr/gcc-4.7.0. 이제 실행 파일에 대한 심볼릭 링크를 만들거나 bin디렉토리를 $PATH변수에 추가하기 만하면됩니다 .


1
작동하는 버전의 와인을 컴파일하려고 할 때 gcc가 누락되었다는 문제가 발생했습니다. 불행히도 homebrew를 통해 v4.7을 설치하면 오류가 발생했습니다. 그래서 나는 brew tap homebrew/dupes다음을 사용하여 Apple v4.2로 갔다 brew install apple-gcc42. 이것은 내가 일하는 gcc와 와인을 얻는 데 도움이되었습니다. 당신은 여기에서 (사제가하는대로) 바이너리를 얻을 수 있습니다 : r.research.att.com/tools
— iolsmit

@iolsmit 깨끗하고 최신의 Homebrew로 GCC 4.7 설치를 다시 시도해야합니다. 그것은 매력처럼 작동해야합니다. 그렇지 않은 경우 Homebrew-dupes 관리자에게 버그를 신고하십시오.
— Konrad Rudolph

3
brew tap homebrew/dupes; brew install gcc --use-llvm. 참조 github.com/Homebrew/homebrew-dupes/issues/20
— PHS

@KonradRudolph 어디서나 나는 당신이 내가 묻는 질문에 대답하고 있습니다! 감사합니다 :)
— Rik Smith-Unna

1
@Warren 소리를 낼 필요가 없습니다. 그러나 yihang은 실제로 내가 받아 들인 최신 답변을 게시했기 때문에 알림에 감사드립니다.
— Konrad Rudolph

13

오늘 누군가이 오래된 게시물에 대한 링크를 보았습니다. homebrew에 GCC를 설치하는 가장 좋은 방법은 바로 brew install gcc입니다. XCode 명령 줄 도구가있는 경우 (XCode와 별개이며로 설치할 수 있음 xcode-select --install) 사전 컴파일 된 버전이 설치됩니다 (매우 빠름).


3

나도이 문제가 있었다. 또한 Mac의 llvm-gcc의 표준 (오래된) 설치와 함께 제공되지 않는 gfortran을 사용해야한다는 것입니다.

내가 발견 한 고성능 컴퓨팅은 최근까지 사자에 잘 작동하는 GCC 빌드.


나는 이것을 시도했다. 작동하지 않았을뿐만 아니라 그가 사용하는 설치 기술은 매우 위험합니다. 조심스럽게 모든 것을 취소하기 위해 한 시간 정도 걸렸습니다.
— 밥 아만

2
오, 나는 그가 제안한대로 설치하지 말라고 말했을 것입니다. 파일의 압축을 풀고 원하는 바이너리에 심볼릭 링크를 만들어 심볼릭 링크가 내 경로에 있는지 확인합니다. 일반적으로 이것은 ~ / bin /과 같은 경로에 "로컬"을 추가하여 수행됩니다.
— cm2

그래, 그게 더 제정신이야. 그의 설치 절차는 끔찍한 견해이며 나는 맹목적으로 나아 가기보다는 방금 가정했을 것입니다.
— 밥 아만

3

누군가이 오래된 스레드를 보는 경우 현재 승인 된 답변에 사용 된 homebrew / versions 가 homebrew / core 를 선호하여 더 이상 사용되지 않는 것 같습니다 . 그냥 실행하십시오 .brew install <formula>


Homebrew를 통해 GCC를 설치하는 방법 인 OP의 질문과 어떻게 관련이 있는지 설명해 주시겠습니까?
— fsb

@fsb 답변이 업데이트되었습니다.
— Avi

이것은 허용되는 답변에 대한 의견입니다. OP 질문에 답하지 않으므로 답변 자체가되어서는 안됩니다. 평판 이 충분 하면 의견 을 추가 하고 후속 질문을 할 수 있습니다. 평판을 얻으려면 명확하고 간결한 질문 에 대답하십시오 .
— fsb

이것이 변경되는 추출 버전을 지정하기 위해 새로운 질문을해야합니까? 이 오래된 포스트를 고치는 것은 낮은 이익, 높은 지연으로 보입니다.
— bmike

평판이 충분하다면 대신 수용된 솔루션에 대해 언급했을 것입니다. 직접 해보십시오.
— Avi

0

https://github.com/kennethreitz/osx-gcc-installer- 이것을 사용해보십시오. Lion으로 업그레이드 한 후 Homebrew 및 기타 (Ruby)로 패키지를 컴파일하기 위해 성공적으로 사용했습니다.

읽어보기에서 :

OSX GCC 설치 프로그램 GCC 및 관련 도구를 원한다면 방대한 Xcode 설치 프로그램을 다운로드하여 설치하는 것이 매우 번거 롭습니다.

osx-gcc-installer를 사용하면 사전 빌드 된 이진 패키지에서 필수 컴파일러를 설치하거나 고유 한 설치 관리자를 만들 수 있습니다.


Xcode에서 설치 한 버전 만 설치합니다. 즉, 구식이며 실제로는 GCC가 아니라 LLVM-GCC입니다.
— Konrad Rudolph

1
구식 : 예. 패키지의 핵심은 Xcode가 제공하는 유틸리티이지만 Xcode에 필요한 다른 많은 구성 요소가 없다는 것입니다. GNU GCC가 아님 : 잘못되었습니다. /usr/bin/gccllvm gcc에 대한 심볼릭 링크이지만 .bash_profile 또는 적절한 파일의 명시 적 참조 /usr/bin/gcc-4.2또는 설정 export CC="gcc-4.2"은 문제를 완화시킵니다. ( 이 스택 오버플로 질문 도 참조하십시오 .)
— Jason Salaz

2
이 프로젝트는 엑스 코드에 대한 애플의 공식 명령 행 도구로 대체되었습니다 참고 : kennethreitz.org/essays/xcode-gcc-and-homebrew
— 아르토 Bendiken
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.