GCC安装【自动版】
gcc官网:https://gcc.gnu.org/
gcc11安装资源:gcc11自动安装脚本及源码
因为官网镜像原因,下载速度贼慢做了一个整理,为了方便安装写了一个脚本,可以一并打包下载无脑安装。
脚本使用注意事项:
- 硬存剩余状况健康,建议日常至少保持大于10G的可用空间,如果空间不够,参考下面的扩容介绍。
- 内存大小健康,为了加快编译速度,make是采用8线程编译。内存可能拉爆了。建议8G以上。小于8G建议扩大。
- 需要获得权限。
使用方法:
sudo su
sh installGcc11.sh
脚本:
#!/bin/sh
tar -xvf gcc-11.1.0.tar.xz
cd gcc-11.1.0
sed -i '35d' tt
sed -i "35a base_url='http://mirror.linux-ia64.org/gnu/gcc/infrastructure/' " tt
cd .. #不建议在源代码里进行编译和安装,所以退回上级文件夹
mkdir gcc11_build
cd gcc11_build
unset LIBRARY_PATH #重置环境变量
../gcc-11.1.0/configure --disable-multilib
make -j 8 #8是多线程数,可以根据电脑配置修改,如果是虚拟机建议不要开启多线程编译,本行请换成make。如果还是编不过,考虑增大swap空间,或增大虚拟机内存分配。编译时最好不要开启其他程序。
sudo make install #make install 的时候需要带上sudo是因为默认安装地址是/usr/local,需要权限。除非在make的时候选定不需要权限安装地址(不推荐)
sudo update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/gcc 50 #使用update-alternatives命令配置增加最新版本编译器
sudo update-alternatives --install /usr/bin/g++ g++ /usr/local/bin/g++ 50
#下面是增加libstdc++链接
cd /usr/lib/x86_64-linux-gnu/
sudo cp libstdc++.so.6 libstdc++.so.6.backup
sudo rm libstdc++.so.6
sudo cp /usr/local/lib64/libstdc++.so.6.0.29 libstdc++.so.6.0.29
sudo ln -s libstdc++.so.6.0.29 libstdc++.so.6
GCC版本切换
ls /usr/bin/gcc* #此步骤显示的内容是下一步配置的内容
ls /usr/bin/g++*
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 #使用update-alternatives命令配置原始编译器
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 60 #这两步相当于向系统编译器优先级注册,注册2个版本或以上数量,才能进行版本切换
sudo update-alternatives --config gcc #选择版本,进行切换
sudo update-alternatives --config g++
gcc -v #查看版本
g++ -v
同时版本切换也需要对libstdc++进行切换,目前我的是无法兼容的状态所以切换方法为
切换高版本
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
cd /usr/lib/x86_64-linux-gnu/
sudo rm libstdc++.so.6
sudo ln -s libstdc++.so.6.0.29 libstdc++.so.6
切换低版本
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
cd /usr/lib/x86_64-linux-gnu/
sudo rm libstdc++.so.6
sudo ln -s libstdc++.so.6.backup libstdc++.so.6
内容参考:https://blog.csdn.net/davidhopper/article/details/79681695
GCC安装【手动版】
官网:https://gcc.gnu.org/
进入官网选择右侧下载的mirrors,binary没有ubuntu版本,需要从镜像下载源码进行编译,进入mirror选择Russia的镜像。然后在镜像站里面选择release文件夹,挑选自己需要的版本下载。
此处选择的是11.1.链接:gcc-11.1.0
tar -xvf gcc-11.1.0.tar.xz 或者 tar -xzvf gcc-11.1.0.tar.gz
#前者是xz压缩方式后者是gzip压缩方式
cd gcc-11.1.0
打开依赖包下载脚本文件:contrib/download_prerequisites
将该文件里的base_url='ftp://gcc.gnu.org/pub/gcc/infrastructure/'替换为:base_url=‘http://mirror.linux-ia64.org/gnu/gcc/infrastructure/’,即将不存在的服务器地址替换为镜像服务器地址。接下来,执行如下命令自动下载并解压依赖包:
bash contrib/download_prerequisites
如果此步骤失败,需要继续更换镜像服务器地址,或者搭个梯子(狗头),然后进入gcc源码文件夹中删除gmp-6.1.0.tar.bz2,mpfr-3.1.4.tar.bz2,mpc-1.0.3.tar.gz,isl-0.16.1.tar.bz2四个文件,然后重复执行bash这一步,直至出现”All prerequisites downloaded successfully“,表示成功了。
cd ..
mkdir gcc11_build
cd gcc11_build
unset LIBRARY_PATH #重置环境变量
../gcc-11.1.0/configure --disable-multilib
make -j 8
sudo make install
话说,手动make和makeinstall没有一个明确的安装成功的提示,除非是出现error或failed等明显出错的情况否则请继续下一步,如果下一步失败再返回上一步查找原因。
#update-alternatives --install <链接> <名称> <路径> <优先级>
sudo update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/gcc 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/local/bin/g++ 50
# 查询本机已有GCC编译器情况
sudo update-alternatives --query gcc
# 查询本机已有G++编译器情况
sudo update-alternatives --query g++
虚拟机扩容
-
如果是双系统的话,只要保证硬件空间和硬件内存足够大,即可,否则需要升级机器或者make -j 8 改成make试试。
-
如果是虚拟机,关注点有两个,硬存和内存
-
硬存扩展:
主要是两部:a.虚拟配置 b.安装gparted,并使用它进行分区
bash sudo apt-get install gparted
bash sudo gparted
然后按照步骤介绍,进行扩容即可。
内容参考:https://blog.csdn.net/daemon_2017/article/details/80660372 -
内存扩展:
a.增大交换空间(swap)【不推荐】 b.增加内存【有钱的话,非常推荐,再增大虚拟内存,就可以有更好的体验】 c.增加虚拟内存(在虚拟机上设置一下就行)【推荐】