网上有关 GCC 源码编译的文章很多,但这里还想再添加个人认为比较容易忽视的两点:
- GCC 在后续的版本(貌似是 4.7 之后)添加了下载 依赖文件的脚本;
- GCC 可以多版本共存。
GCC 依赖文件下载
博文 在 CentOS 下编译安装 GCC 很不错,简明扼要。这篇文章跟其他教程不一样之处在于它指出了如何利用 GCC 源码自带 SHELL 脚本下载对应的依赖库:
1 | $ cd gcc-top-dir |
GCC 多版本共存
另外,我们还可以让系统共存多个 GCC 版本,具体方法见下文(也可参考 StackExchange 上的一个问答)。
现在系统中已经存在 3 个版本的 GCC (gcc && g++-4.7、gcc && g++-4.9、gcc && g++-5),如下图:
此时,默认的 gcc && g++ 指向 gcc-5 && g++-5。接下来,我们可以配置,让 gcc && g++ 指向另外的版本:
1 | $ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 47 |
1 | $ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 47 |
其中 47、49、50 表示的是优先级,数字越大优先级越高,所以通过这样的设置后,gcc && g++ 默认指向的还是 gcc-5 && g++-5。那我们怎么让 gcc && g++ 指向其他版本呢?具体方法如下:
1 | $ sudo update-alternatives --config gcc |
通过这样方法,同样可以将 g++ 改为指向 g++-4.7。