gcc编译安装教程
# 简介
GNU 编译器套件(GNU Compiler Collection)包括 C、 C++、 Objective-C、 Fortran、 Java、Ada 和 Go 语言的前端,也包括了这些语言的库(如 libstdc++、 libgcj 等等)。
官网地址:传送门 (opens new window)。
# 编译 4.9.4版本
# 下载相关依赖包
GCC 4.9.4 released [2016-08-03]
# GCC
ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.9.4/
# Necessary to build GCC.
# 当您使用的系统不能直接链接互联网的时候,可以手动下载依赖包
# 否者就不需要手动下载了
MPFR=mpfr-2.4.2
ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
GMP=gmp-4.3.2
ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2
MPC=mpc-0.8.1
ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
# Necessary to build GCC with the Graphite loop optimizations.
ISL=isl-0.12.2
ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.12.2.tar.bz2
CLOOG=cloog-0.18.1
ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-0.18.1.tar.gz
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
备注:怎么知道下载哪些依赖包呢? vim ./contrib/download_prerequisites 查看所需的依赖库的下载了路径,例如: MPFR=mpfr-2.4.2 wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPFR.tar.bz2 || exit 1 因此,mpfr 的下载路径为: ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
# 配置依赖文件
1)将下载的压缩包上传,现将 gcc-4.9.4.tar.bz2 压缩包解压缩
tar jxvf gcc-4.9.4.tar.bz2
1
2)然后将其他依赖包移动至解压后的 gcc-4.9.4 文件夹
mv mpfr-2.4.2.tar.bz2 gmp-4.3.2.tar.bz mpc-0.8.1.tar.gz \
mpc-0.8.1.tar.gz cloog-0.18.1.tar.gz gcc-4.9.4
1
2
2
3)修改 download_prerequisites 文件
vim ./gcc-4.9.4/contrib/download_prerequisites
1
在带有 wget 的每一行最前面添加“#”字符,将其注释掉
4)配置依赖文件
cd gcc-4.9.4
./contrib/download_prerequisites
cd ..
1
2
3
2
3
# 编译 gcc
mkdir gcc-build-4.9.4
cd gcc-build-4.9.4
../gcc-4.9.4/configure \
--prefix=$HOME/software/gcc/4.9.4 \
--enable-bootstrap \
--enable-shared \
--enable-checking=release \
--enable-threads=posix \
--enable-languages=all \
--with-system-zlib \
--enable-__cxa_atexit \
--build=x86_64-kylin-linux \
2>&1 | tee configure.log
make -j12
make install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 使用
export PATH=$HOME/software/gcc/4.9.4/bin:$PATH
export LD_LIBRARY_PATH=$HOME/software/gcc/4.9.4/lib64:$LD_LIBRARY_PATH
1
2
2