簡単な方法
一般的な開発者の場合は、 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は、ここでの答えは「難しい方法」であると述べています。これは、すべてを1つずつ構築し、共有ライブラリを使用しないためです。
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をドライブ内で簡単に移動する必要があるため、すべての静的コードが必要であり、共有コードは必要ありません。共有コードを使用する場合は、-disable-sharedフラグを省略してください。
バージョン
この回答のコマンドのいずれかを実行するときは、ニーズに一致する現在のGCCバージョン番号を使用するようにコマンドを更新してください。この回答のコマンドはGCC4.6.2用です。
GCCのドキュメントには、「必要なツールの十分に新しいバージョンは通常機能しますが、ライブラリの要件は一般的に厳しくなります。新しいバージョンが機能する場合もありますが、ドキュメントに記載されている正確なバージョンを使用する方が安全です」と記載されていることに注意してください。
GMP
GMPはGNUMultiplePrecisionArithmeticLibraryです。
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はGNUMultiple-precisionCライブラリです。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は、Executable andLinkableFormatの略です。このライブラリは、アーキテクチャに依存しないサイズとエンディアンのサポートを提供します。
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コマンドとそのフラグはすべて1つのコマンドラインにある必要があります(この投稿では、Webページの幅のために別々の行に表示されています)。
注:フルパスを使用してライブラリパス環境変数を構成し、設定しません。ブートストラップを無効にし、共有ライブラリを無効にすることを選択します(通常のユーザーは両方が必要な場合があります)。また、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に感謝します)