当前位置:   article > 正文

g++11编译安装+虚拟机扩容_g++ 11

g++ 11

GCC安装【自动版】

gcc官网:https://gcc.gnu.org/
gcc11安装资源:gcc11自动安装脚本及源码
因为官网镜像原因,下载速度贼慢做了一个整理,为了方便安装写了一个脚本,可以一并打包下载无脑安装。
脚本使用注意事项:

  1. 硬存剩余状况健康,建议日常至少保持大于10G的可用空间,如果空间不够,参考下面的扩容介绍。
  2. 内存大小健康,为了加快编译速度,make是采用8线程编译。内存可能拉爆了。建议8G以上。小于8G建议扩大。
  3. 需要获得权限。

使用方法:

sudo su
sh installGcc11.sh
  • 1
  • 2

脚本:

#!/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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

同时版本切换也需要对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
  • 1
  • 2
  • 3
  • 4
  • 5

切换低版本

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
  • 1
  • 2
  • 3
  • 4
  • 5

内容参考: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
  • 1
  • 2
  • 3

打开依赖包下载脚本文件: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
  • 1

如果此步骤失败,需要继续更换镜像服务器地址,或者搭个梯子(狗头),然后进入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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

话说,手动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
  • 1
  • 2
  • 3
# 查询本机已有GCC编译器情况
sudo update-alternatives --query gcc
# 查询本机已有G++编译器情况
sudo update-alternatives --query g++
  • 1
  • 2
  • 3
  • 4

虚拟机扩容

  1. 如果是双系统的话,只要保证硬件空间和硬件内存足够大,即可,否则需要升级机器或者make -j 8 改成make试试。

  2. 如果是虚拟机,关注点有两个,硬存和内存

  3. 硬存扩展:
    主要是两部:a.虚拟配置 b.安装gparted,并使用它进行分区
    bash sudo apt-get install gparted
    bash sudo gparted
    然后按照步骤介绍,进行扩容即可。
    内容参考:https://blog.csdn.net/daemon_2017/article/details/80660372

  4. 内存扩展:

     a.增大交换空间(swap)【不推荐】
     b.增加内存【有钱的话,非常推荐,再增大虚拟内存,就可以有更好的体验】
     c.增加虚拟内存(在虚拟机上设置一下就行)【推荐】
    
    • 1
    • 2
    • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/260942
推荐阅读
相关标签
  

闽ICP备14008679号