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/dupeshomebrew/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.