쉬운 방법
일반적인 개발자라면 http://gcc.gnu.org/wiki/InstallingGCC의 지침 이나 다음과 같은 시스템 패키지 관리자를 사용하여 쉬운 방법으로 설치할 수 있습니다 .
apt install gcc # for Debian, Ubuntu, etc.
yum install gcc # for RedHat, CentOS, etc.
brew install gcc # for Mac OS X
어려운 방법
GCC는 여기에서 답이 "어려운 방법"이라고 말합니다. 왜냐하면 모든 것을 부분적으로 만들고 공유 라이브러리를 사용하지 않기 때문입니다.
GCC 인프라
GCC 인프라 얻기 :
ftp://gcc.gnu.org/pub/gcc/infrastructure/
임시 디렉토리에 다운로드를 저장합니다 (원하는 디렉토리를 사용할 수 있음).
/opt/downloads
downloads 디렉터리 또는 하위 디렉터리와 다른 임시 디렉터리에 인프라를 빌드합니다.
/tmp/gcc
다음과 같은 정적 라이브러리를 사용하여 인프라를 구성하십시오.
./configure --disable-shared --enable-static --prefix=/tmp/gcc
--disable-shared 플래그는 필요에 따라 자세히 살펴볼 가치가 있습니다. 정적 코드 만 빌드하고 있기 때문에 --disable-shared를 사용하고 공유 코드를 빌드하지 않았는지 확인하고 싶습니다. 내 필요는 결과 GCC를 내 드라이브에서 쉽게 이동하는 것이므로 모든 정적 코드를 원하고 공유 코드를 원하지 않습니다. 공유 코드를 선호하는 경우 --disable-shared 플래그를 생략하십시오.
버전
이 답변의 명령 중 하나를 실행할 때 필요에 맞는 현재 GCC 버전 번호를 사용하도록 명령을 업데이트하십시오. 이 답변의 명령은 GCC 4.6.2 용입니다.
GCC 문서에는 "충분히 새로운 버전의 필수 도구가 일반적으로 작동하지만 라이브러리 요구 사항은 일반적으로 더 엄격합니다. 경우에 따라 새 버전이 작동 할 수 있지만 문서화 된 정확한 버전을 사용하는 것이 더 안전합니다."
GMP
GMP는 GNU 다중 정밀도 산술 라이브러리입니다.
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2
bunzip2 gmp-4.3.2.tar.bz2
tar xvf gmp-4.3.2.tar
cd gmp-4.3.2
./configure --disable-shared --enable-static --prefix=/tmp/gcc
make && make check && make install
MPFR
MPFR은 GNU 다중 정밀도 부동 소수점 반올림 라이브러리입니다. GMP에 따라 다릅니다.
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
bunzip2 mpfr-2.4.2.tar.bz2
tar xvf mpfr-2.4.2.tar
cd mpfr-2.4.2
./configure --disable-shared --enable-static --prefix=/tmp/gcc --with-gmp=/tmp/gcc
make && make check && make install
MPC
MPC는 GNU 다중 정밀도 C 라이브러리입니다. GMP 및 MPFR에 따라 다릅니다.
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
tar zxvf mpc-0.8.1.tar.gz
cd mpc-0.8.1
./configure --disable-shared --enable-static --prefix=/tmp/gcc --with-gmp=/tmp/gcc --with-mpfr=/tmp/gcc
make && make check && make install
꼬마 요정
ELF는 실행 가능 및 링크 가능 형식을 나타냅니다. 이 라이브러리는 아키텍처 독립적 인 크기와 엔디안 지원을 제공합니다.
wget http://www.mr511.de/software/libelf-0.8.13.tar.gz
tar zxvf libelf-0.8.13.tar.gz
cd libelf-0.8.13
./configure --disable-shared --enable-static --prefix=/tmp/gcc
make && make check && make install
GCC
GCC는 GNU 컴파일러 컬렉션입니다. GMP, MPFR, MPC 및 ELF에 따라 다릅니다.
wget http://www.netgull.com/gcc/releases/gcc-4.6.2/gcc-4.6.2.tar.gz
tar zxvf gcc-4.6.2.tar.gz
동일한 마운트 지점의 스크래치 디렉토리에 gcc를 빌드하십시오. (/ tmp 내에서 빌드하면 크로스 컴파일 호스트 문제가 발생합니다)
mkdir -p /opt/downloads/gcc-4.6.2-scratch
cd /opt/downloads/gcc-4.6.2-scratch
configure 명령과 플래그는 모두 하나의 명령 줄에 있어야합니다 (이 게시물은 웹 페이지 너비 때문에 별도의 줄에 표시됨).
참고 : 전체 경로를 사용하여 라이브러리 경로 환경 변수를 구성하고 설정하지 않습니다. 우리는 부트 스트랩을 비활성화하고 공유 라이브러리를 비활성화하기로 선택합니다 (일반 사용자는 둘 다 원할 수 있음), posix 스레드를 사용하고 우리가 원하기 때문에 기본값 인 플래그를 지정합니다 (일반 사용자는 다른 스레드를 사용하거나 건너 뛰기를 원할 수 있음). 기본 플래그). YMMV 및 여기 에서 플래그에 대해 읽으 십시오.
/opt/downloads/gcc-4.6.2/configure
--disable-shared
--disable-bootstrap
--disable-libstdcxx-pch
--enable-languages=all
--enable-libgomp
--enable-lto
--enable-threads=posix
--enable-tls
--with-gmp=/tmp/gcc
--with-mpfr=/tmp/gcc
--with-mpc=/tmp/gcc
--with-libelf=/tmp/gcc
--with-fpmath=sse
make && make install
이 페이지는 GCC 설치 정보, 빌드 방법, 다양한 플래그 등에 유용합니다.
http://www.acsu.buffalo.edu/~charngda/cc_build.html
업데이트
ppl 라이브러리는 메모리 최적화에 사용할 수 있습니다. bugseng.com/products/ppl/Download를 참조하십시오 (댓글에 Paul에게 감사드립니다)
gcc 소스 디렉토리에서 ./contrib/download_prerequisites를 실행할 수 있습니다. (reddit의 N7P에 감사드립니다)