一、安装开发必备环境

二、编译安装gcc

GCC下载地址:https://ftp.gnu.org/gnu/gcc/

下载后进行编译安装:(这里以 GCC 6.3.0 版本作为例子)

其中执行 ./contrib/download_prerequisits  将自动下载四个文件(下载地址为ftp://gcc.gnu.org/pub/gcc/infrastructure/下述文件名字)

  • mpft-2.4.2.tar.bz2
  • gmp-4.3.2.tar.bz2
  • mpc-0.8.1.tar.gz
  • isl-0.15.tar.bz2

若是网络环境不理想,下载速度缓慢,那么就需要删除已下载文件,重新下载;或者通过命令行窗口处,拿到下载地址(地址如上,若有变化就按新地址为准)手动下载,再放到源代码目录下。

下载完成后,configure需要配置一些选项,–prefix 可以设置 make 完后 make install 实际 GCC 安装的地址,若没有设置,就默认安装在 /usr/local/gcc-6.3.0 目录下。

编译需要的时间非常的长,需要耐心等待。(或许还是要用一下 make -j8)

编译完成后重新启动系统。(sudo init 6 / sudo reboot)

重新启动完成后,通过 gcc -v 查看 GCC 版本,可以用小程序测试一下。

 

需要载入的时候,可以在个人目录下的 .bashrc 中添加 /usr/local/gcc-x.x.x/bin lib64 路径,并 source .bashrc 刷新,然后用 gcc -v 查看。在 bin 目录下,还有 g++ 等可执行文件。

三、运行GCC程序出现‘GLIBCXX_3.4.21’ not fount问题

运行出现“./a.out: /usr/lib64/libstdc++.so.6:version ‘GLIBCXX_3.4.21’ not found(required by ./a.out) ”问题。

这是因为升级 GCC 时,生成的动态库没有替换老版本 GCC 动态库导致的问题,将 GCC 最新版本的动态库替换系统中老版本的动态库就可以解决了。

在输出结果中没有发现问题所提示的‘GLIBCXX_3.4.21’项,所以出现问题了。解决要将当前文件链接的指向改成最新的动态库地址:

然后再用上面的指令查看,这时就能看到有 GLIBCXX_3.4.21 项。

<2021-01-19更新>

要是没有找到更新版本的 libstdc++.so.6

(1)可以安装一个高版本的 Anaconda,在其 /lib 目录下找到libstdc++.so.6 文件。

(2)但一般是通过升级 GCC 来实现 libstdc++ 的升级的,若是安装新版本的 GCC 发现 libstdc++ 没有变,就大概率是环境里没有导入升级后新版本的 libstdc++.so 文件,找到它,再按照上面的方法进行软链接重指向即可。

四、编译安装GDB

gdb调试中出现:Missing separate debuginfos, use: debuginfo-install glibc-2.17-106.e17_2.6.x86_4 libgcc-4.8.5-4.e17.x86_64的问题。

这时因为 GCC 版本与 GDB 版本不匹配导致的,或者说是 GDB 版本太低,GDB 也需要升级。(这里以 GDB 7.11.1 为例)

整个编译过程不会很久,若在 make install 中出现 WARNING: ‘makeinfo’ is missing on your system,则安装相关依赖程序

安装完依赖后重新执行 make install 即可,安装完毕后重新启动系统。

通过

来查看 GDB 版本。