Легкий шлях
Якщо ви типовий розробник, ви можете встановити простий спосіб, скориставшись інструкціями на веб- сторінці 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
Створіть інфраструктуру в темп-каталозі, який відрізняється від каталогу завантажень або його підкаталогів:
/tmp/gcc
Налаштуйте інфраструктуру за допомогою таких статичних бібліотек:
./configure --disable-shared --enable-static --prefix=/tmp/gcc
Прапор --disable-shared може бути вартим детального ознайомлення залежно від ваших потреб. Я використовую -disable-shared, тому що я будую лише статичний код, і я хочу переконатися, що я не будую жодного спільного коду. Моя потреба полягає в тому, щоб легко перемістити отриманий GCC навколо моїх дисків, тому я хочу весь статичний код, і я не хочу будь-якого спільного коду. Якщо ви віддаєте перевагу спільний код, опустіть прапор - відключити-спільний доступ.
Версії
Коли ви запускаєте будь-яку з команд у цій відповіді, не забудьте оновити команди, щоб використовувати поточний номер версії 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 - це багатоточна бібліотека C GNU. Це залежить від 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
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 (спасибі Павло в коментарях)
Ви можете запустити ./contrib/download_prerequisites з вихідного каталогу gcc. (Завдяки N7P в Reddit)