วิธีง่ายๆ
หากคุณเป็นนักพัฒนาทั่วไปคุณสามารถติดตั้งวิธีง่ายๆโดยใช้คำแนะนำที่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
สร้างโครงสร้างพื้นฐานในไดเร็กทอรี temp ที่แตกต่างจากไดเร็กทอรีดาวน์โหลดหรือไดเร็กทอรีย่อย:
/tmp/gcc
กำหนดค่าโครงสร้างพื้นฐานโดยใช้ไลบรารีแบบคงที่ดังนี้:
./configure --disable-shared --enable-static --prefix=/tmp/gcc
ค่าสถานะ - ปิดใช้งานร่วมกันอาจคุ้มค่ากับการมองใกล้ขึ้นอยู่กับความต้องการของคุณ ฉันใช้ --disable-shared เพราะฉันกำลังสร้างโค้ดแบบคงที่เท่านั้นและฉันต้องการให้แน่ใจว่าฉันไม่ได้สร้างโค้ดที่แชร์ใด ๆ ความต้องการของฉันคือย้าย GCC ที่เป็นผลลัพธ์ไปรอบ ๆ ไดรฟ์ของฉันอย่างง่ายดายดังนั้นฉันต้องการรหัสคงที่ทั้งหมดและฉันไม่ต้องการรหัสที่แชร์ หากคุณต้องการโค้ดที่ใช้ร่วมกันให้ละเว้นแฟล็ก --disable-shared
รุ่น
เมื่อคุณเรียกใช้คำสั่งใด ๆ ในคำตอบนี้อย่าลืมอัปเดตคำสั่งเพื่อใช้หมายเลขเวอร์ชัน GCC ปัจจุบันที่ตรงกับความต้องการของคุณ คำสั่งในคำตอบนี้ใช้สำหรับ GCC 4.6.2
โปรดทราบว่าเอกสาร GCC ระบุว่า: "แม้ว่าโดยปกติแล้วเครื่องมือที่จำเป็นเวอร์ชันใหม่ ๆ จะใช้งานได้ดี แต่โดยทั่วไปแล้วข้อกำหนดของไลบรารีจะเข้มงวดกว่าเวอร์ชันที่ใหม่กว่าอาจใช้ได้ในบางกรณี แต่จะปลอดภัยกว่าหากใช้เวอร์ชันที่ระบุในเอกสาร"
GMP
GMP คือ GNU Multiple Precision Arithmetic Library
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 ย่อมาจาก Executable and Linkable Format ไลบรารีนี้มีขนาดที่ไม่ขึ้นกับสถาปัตยกรรมและการสนับสนุน 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 คือ GNU Compiler Collection ขึ้นอยู่กับ 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
คำสั่งกำหนดค่าและแฟล็กต้องอยู่ในบรรทัดคำสั่งเดียว (โพสต์นี้แสดงในบรรทัดแยกจากกันเพียงเพราะความกว้างของหน้าเว็บ)
หมายเหตุ: เราใช้เส้นทางแบบเต็มเพื่อกำหนดค่าและไม่ได้ตั้งค่าตัวแปรสภาพแวดล้อมไลบรารีพา ธ เราเลือกที่จะปิดการใช้งาน bootstrap และปิดการใช้งานไลบรารีที่แชร์เนื่องจากเราไม่ต้องการ (ผู้ใช้ทั่วไปอาจต้องการทั้งสองอย่าง) และใช้เธรด 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 ในความคิดเห็น)
คุณสามารถเรียกใช้. /contrib/download_prerequisites จากไดเร็กทอรีต้นทาง gcc (ขอบคุณ N7P บน reddit)