318 字
2 分钟
编译一个GCC---Bilibili
2022-12-10

准备#

gcc-7.5.0.tar.gz gmp-6.1.0.tar.bz2 mpc-1.0.3.tar.gz mpfr-3.1.4.tar.bz2 isl-0.16.1.tar.bz2

使用迅雷下载很快

https://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.gz

ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2

ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2

ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz

ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2

下载以后解压

编译环境#

进入除了gcc以外的每一个文件夹中 运行

./configure
sudo make && sudo make install

然后在与gcc-7.5.0同级目录创建build环境文件夹(哪里都行 你理解后面的操作则可以自由发挥)

mkdir gcc-build-7.5.0
cd gcc-build-7.5.0

进入build文件夹后,运行这个(这里configure的路径可以自由发挥)

../gcc-7.5.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

PS:这里好像有个坑

error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory

有可能出现这个,反正如果报错看看最后那几行有没有关于libmpfr.so的,有的话就运行

sudo ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4

这个是加载共享库时出错,软链接链上就好了。

随后开始make!(-j后面的数字根据自己cpu有几个核来定,我这里8个核,就用-j8,一般来说,最大并行任务数为cpu_num * 2)

make -j8

然后

make install

ps:这两个命令可以使用sudo以防出现权限不够自己停掉

检测与版本切换#

检测当前默认gcc版本:

gcc-v
g++ -v

我的被安装在了 /usr/local/bin的位置

切换gcc版本:

sudo update-alternatives --config gcc
编译一个GCC---Bilibili
https://fuwari.vercel.app/posts/compile-a-gcc/
作者
Lettle
发布于
2022-12-10
许可协议
CC BY-NC-SA 4.0