Cách dễ dàng
Nếu bạn là nhà phát triển điển hình, bạn có thể cài đặt một cách dễ dàng, sử dụng các hướng dẫn tại http://gcc.gnu.org/wiki/InstallingGCC hoặc trình quản lý gói hệ thống của bạn, chẳng hạn như:
apt install gcc # for Debian, Ubuntu, etc.
yum install gcc # for RedHat, CentOS, etc.
brew install gcc # for Mac OS X
Con đường gian nan
GCC cho biết câu trả lời ở đây là "một cách khó khăn" bởi vì nó xây dựng mọi thứ từng mảnh một và không sử dụng các thư viện chia sẻ.
Cơ sở hạ tầng GCC
Nhận cơ sở hạ tầng GCC:
ftp://gcc.gnu.org/pub/gcc/infrastructure/
Đặt tải xuống trong một thư mục tạm thời (bạn có thể sử dụng bất kỳ thư mục nào bạn muốn).
/opt/downloads
Xây dựng cơ sở hạ tầng trong thư mục tạm thời khác với thư mục tải xuống hoặc thư mục con của nó:
/tmp/gcc
Định cấu hình cơ sở hạ tầng bằng các thư viện tĩnh như thế này:
./configure --disable-shared --enable-static --prefix=/tmp/gcc
Cờ --disable-shared có thể đáng xem kỹ hơn tùy theo nhu cầu của bạn. Tôi sử dụng --disable-shared vì tôi chỉ xây dựng mã tĩnh và tôi muốn đảm bảo rằng tôi không xây dựng bất kỳ mã chia sẻ nào. Nhu cầu của tôi là di chuyển GCC kết quả xung quanh các ổ đĩa của tôi một cách dễ dàng, vì vậy tôi muốn tất cả mã tĩnh và tôi không muốn bất kỳ mã chia sẻ nào. Nếu bạn thích mã được chia sẻ, hãy bỏ qua cờ --disable-shared.
Phiên bản
Khi bạn chạy bất kỳ lệnh nào trong câu trả lời này, hãy nhớ cập nhật các lệnh để sử dụng số phiên bản GCC hiện tại phù hợp với nhu cầu của bạn. Các lệnh trong câu trả lời này là dành cho GCC 4.6.2.
Lưu ý rằng tài liệu GCC cho biết: "Mặc dù mọi phiên bản mới của các công cụ cần thiết thường hoạt động, các yêu cầu thư viện thường nghiêm ngặt hơn. Các phiên bản mới hơn có thể hoạt động trong một số trường hợp, nhưng an toàn hơn khi sử dụng các phiên bản chính xác được ghi lại."
GMP
GMP là Thư viện Số học Chính xác 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 là thư viện làm tròn điểm chính xác GNU. Nó phụ thuộc vào 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 là thư viện C nhiều độ chính xác của GNU. Nó phụ thuộc vào GMP và 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 là viết tắt của định dạng thực thi và liên kết. Thư viện này cung cấp kích thước độc lập với kiến trúc và hỗ trợ về cuối.
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 là Bộ sưu tập Trình biên dịch GNU. Nó phụ thuộc vào GMP, MPFR, MPC và 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
Xây dựng gcc trong một thư mục đầu trên cùng một điểm gắn kết. (Xây dựng nó trong / tmp sẽ kích hoạt các vấn đề máy chủ biên dịch chéo)
mkdir -p /opt/downloads/gcc-4.6.2-scratch
cd /opt/downloads/gcc-4.6.2-scratch
Lệnh configure và các cờ của nó phải nằm trên một dòng lệnh (bài đăng này hiển thị chúng trên các dòng riêng biệt chỉ vì độ rộng của trang web).
Lưu ý: Chúng tôi sử dụng đường dẫn đầy đủ để định cấu hình và không đặt biến môi trường đường dẫn thư viện. Chúng tôi chọn tắt bootstrap và vô hiệu hóa các thư viện dùng chung vì chúng tôi không muốn chúng (người dùng thông thường có thể muốn cả hai) và sử dụng các luồng posix và gắn cờ mặc định vì chúng tôi muốn chúng (người dùng thông thường có thể muốn sử dụng các luồng khác hoặc bỏ qua cờ mặc định). YMMV và đọc về các cờ ở đây
/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
Trang này rất phù hợp với thông tin cài đặt GCC, cách xây dựng nó, nhiều cờ khác nhau và hơn thế nữa:
http://www.acsu.buffalo.edu/~charngda/cc_build.html
Cập nhật
Các thư viện ppl có thể được sử dụng để tối ưu hóa bộ nhớ: xem bugseng.com/products/ppl/D Download (Cảm ơn Paul trong phần bình luận)
Bạn có thể chạy ./contrib/doad_prerequisites từ thư mục nguồn gcc. (Cảm ơn N7P trên reddit)