一、编译安装Gcc
1.下载
wget -c https://ftp.gnu.org/gnu/gcc/gcc-13.1.0/gcc-13.1.0.tar.xz --no-check-certificate
tar -xvf gcc-13.1.0.tar.xz
# 我是直接用迅雷下载到共享目录中,然后拷贝到虚拟机中,进行安装的
2.检查依赖
cd gcc-13.1.0
./contrib/download_prerequisites
3.编译安装
./configure --enable-languages=c,c++ --enable-checking=release --disable-multilib
# 把命令复制到iterm2中遇到++符号后,--enable-checking=release --disable-multilib这些就没有复制进去,奇怪
make -j4 && make install
# 19年款的macbook pro i9 32g内存 1t,编译用时:60分钟
4.更新旧版本库
# 检查版本
gcc -v
发现gcc还是11的版本
strings /usr/lib32/libstdc++.so.6 | grep "GLIBCXX_"
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBCXX_3.4.29
GLIBCXX_3.4.30
# 先替换库
# centos下:
rm -rf /usr/lib64/libstdc++.so.6
ln -s /usr/local/lib64/libstdc++.so.6.0.xx /usr/lib64/libstdc++.so.6
# ubuntu下:
rm -rf /usr/lib632/libstdc++.so.6
ln -s /usr/local/lib64/libstdc++.so.6.0.xx /usr/lib32/libstdc++.so.6
# 可以用命令查找下:
find / -name libstdc++.so.6
# 不移除用备份也可以
mv /usr/lib32/libstdc++.so.6 /usr/lib32/libstdc++.so.6.bak
# 在用命令查看库
strings /usr/lib32/libstdc++.so.6 | grep "GLIBCXX_"
GLIBCXX_3.4.28
GLIBCXX_3.4.29
GLIBCXX_3.4.30
GLIBCXX_3.4.31
# 多了个31
# 替换gcc
mv /usr/bin/gcc /usr/bin/gcc.bak
ln -s /usr/local/bin/gcc /usr/local/gcc
gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/13.1.0/lto-wrapper
目标:x86_64-pc-linux-gnu
配置为:./configure --enable-languages=c,c++ --enable-checking=release --disable-multilib
线程模型:posix
支持的 LTO 压缩算法:zlib
gcc 版本 13.1.0 (GCC)
二、安装Gdb
1.下载
wget -c https://ftp.gnu.org/gnu/gdb/gdb-14.1.tar.gz --no-check-certificate
tar -xvf gdb-14.1.tar.gz
2.安装依赖
apt install m4
wget -c https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz --no-check-certificate
tar -xvf gmp-6.2.1.tar.gz
# 若手动编译安装gcc 可以直接进入gcc目录来编译安装gmp
./configure --prefix=/usr/local/gmp-6.2.1
make -j4 && make install
wget -c https://ftp.gnu.org/gnu/mpfr/mpfr-4.1.0.tar.xz --no-check-certificate
tar -xvf mpfr-4.1.0.tar.xz
# 若手动编译安装gcc 可以直接进入gcc目录来编译安装gmp
./configure --prefix=/usr/local/mpfr-4.1.0
make -j4 && make install
3.编译安装
./configure --with-gmp=/usr/local/gmp-6.2.1 --with-mpfr=/usr/local/mpfr-4.1.0
make -j4 && make install