Cara Mudah
Jika Anda seorang pengembang biasa, Anda dapat menginstal dengan cara mudah, menggunakan petunjuk di http://gcc.gnu.org/wiki/InstallingGCC atau manajer paket sistem Anda seperti:
apt install gcc # for Debian, Ubuntu, etc.
yum install gcc # for RedHat, CentOS, etc.
brew install gcc # for Mac OS X
Cara yang Sulit
GCC mengatakan jawabannya di sini adalah "cara yang sulit" karena GCC membangun semua bagian demi bagian, dan tidak menggunakan pustaka bersama.
Infrastruktur GCC
Dapatkan infrastruktur GCC:
ftp://gcc.gnu.org/pub/gcc/infrastructure/
Letakkan unduhan di direktori temp (Anda dapat menggunakan direktori apa pun yang Anda inginkan).
/opt/downloads
Bangun infrastruktur di direktori temp yang berbeda dari direktori unduhan atau subdirektorinya:
/tmp/gcc
Konfigurasikan infrastruktur menggunakan pustaka statis seperti ini:
./configure --disable-shared --enable-static --prefix=/tmp/gcc
Bendera --disable-shared mungkin perlu dilihat lebih dekat tergantung pada kebutuhan Anda. Saya menggunakan --disable-shared karena saya hanya membuat kode statis, dan saya ingin memastikan bahwa saya tidak membuat kode bersama. Kebutuhan saya adalah memindahkan GCC yang dihasilkan di sekitar drive saya dengan mudah, jadi saya ingin semua kode statis, dan saya tidak ingin kode bersama. Jika Anda lebih suka kode bersama, hilangkan tanda --disable-shared.
Versi
Saat Anda menjalankan salah satu perintah dalam jawaban ini, pastikan untuk memperbarui perintah untuk menggunakan nomor versi GCC saat ini yang sesuai dengan kebutuhan Anda. Perintah dalam jawaban ini adalah untuk GCC 4.6.2.
Perhatikan bahwa dokumentasi GCC menyatakan: "Meskipun versi yang cukup baru dari alat yang diperlukan biasanya berfungsi, persyaratan pustaka biasanya lebih ketat. Versi yang lebih baru dapat berfungsi dalam beberapa kasus, tetapi lebih aman menggunakan versi persis yang didokumentasikan."
GMP
GMP adalah Perpustakaan Aritmatika Presisi Ganda 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 adalah library pembulatan floating-point presisi ganda GNU. Itu tergantung 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 adalah pustaka C presisi-berganda GNU. Itu tergantung GMP dan 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
PERI
ELF adalah singkatan dari Executable and Linkable Format. Library ini menyediakan ukuran yang tidak bergantung pada arsitektur dan dukungan endian.
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 adalah Koleksi Kompilator GNU. Itu tergantung GMP, MPFR, MPC, dan 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
Bangun gcc di direktori awal pada titik pemasangan yang sama. (Membangunnya di dalam / tmp akan memicu masalah host kompilasi silang)
mkdir -p /opt/downloads/gcc-4.6.2-scratch
cd /opt/downloads/gcc-4.6.2-scratch
Perintah konfigurasi dan benderanya harus semuanya dalam satu baris perintah (posting ini menunjukkannya pada baris terpisah hanya karena lebar halaman web).
Catatan: Kami menggunakan jalur lengkap untuk mengonfigurasi dan tidak menyetel variabel lingkungan jalur perpustakaan. Kami memilih untuk menonaktifkan bootstrap dan menonaktifkan pustaka bersama karena kami tidak menginginkannya (pengguna biasa mungkin menginginkan keduanya), dan menggunakan utas posix dan menandai yang default karena kami menginginkannya (pengguna biasa mungkin ingin menggunakan utas lain atau melewati bendera default). YMMV dan baca tentang bendera di sini
/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
Halaman ini bagus untuk info penginstalan GCC, cara membuatnya, berbagai flag, dan banyak lagi:
http://www.acsu.buffalo.edu/~charngda/cc_build.html
Pembaruan
Pustaka ppl dapat digunakan untuk pengoptimalan memori: lihat bugseng.com/products/ppl/Download (Terima kasih Paul di komentar)
Anda dapat menjalankan ./contrib/download_prerequisites dari direktori sumber gcc. (Terima kasih untuk N7P di reddit)