当前位置:   article > 正文

WSL2下Ubuntu 18.04LTS安装GCC11_安装x86_64_linux_gnu_gcc-11

安装x86_64_linux_gnu_gcc-11

WSL2下Ubuntu 18.04LTS安装GCC11

Ubuntu最好配置一下镜像源!还有下载和安装GCC的时候需要科学上网,因为需要下载一些其他依赖。

1. 安装前置依赖包

sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch python3.5 unzip zlib1g-dev lib32gcc1 \
libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip \
p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils \
upx libelf-dev autoconf automake libtool autopoint device-tree-compiler \
g++-multilib antlr3 gperf ccache mercurial
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

image-20210126095911547

2.下载GCC11

  1. Git下载GCC11: https://github.com/gcc-mirror/gcc,需要科学上网,包很大,下载会有点慢。
git clone https://github.com/gcc-mirror/gcc.git
  • 1

如果下载很慢,推荐直接用浏览器下载gcc-master.zip文件:

image-20210126102045200

  1. 解压下载的gcc-master.zip文件: unzip gcc-master.zip

  2. cd gcc-master

  3. 下载依赖:gmpmpfrmpcisl

./contrib/download_prerequisites
  • 1
  • 这一步有可能下载失败或者很慢,就算开了科学上网也一样,我们直接查看 下./contrib/download_prerequisites这个文件:
[...]
gmp='gmp-6.1.0.tar.bz2'
mpfr='mpfr-3.1.4.tar.bz2'
mpc='mpc-1.0.3.tar.gz'
isl='isl-0.18.tar.bz2'

base_url='http://gcc.gnu.org/pub/gcc/infrastructure/'

[...]

if type wget > /dev/null ; then
  fetch='wget'
else
  fetch='curl -LO'
fi

[...]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 发现这个文件使用的wget或者curl -LOhttp://gcc.gnu.org/pub/gcc/infrastructure/下载的依赖文件,所以我们可以直接用浏览器去这个网址去下载对应的文件并且放入到gcc-master目录下。总之这四个依赖必须要下载好才能进行下一步。
  1. 再次运行./contrib/download_prerequisites

image-20210126110734072

3.编译安装

mkdir build && cd build
  • 1
../configure --disable-multilib
  • 1
  • configure可以使用--prefix=/usr/local/gcc11指定编译路径。

  • --disable-multilib禁用和交叉编译相关的。

  • 执行make -j8命令,-j8表示线程数,这个根据机器性能选一个合适的。请确保有20G以上的内存空间!make命令编译时间很长,一般4-8个小时不等,机器好的更快些。这时候可以去做别的事情了~

  • 执行sudo make install

  • 现在可以将gcc-master目录删掉了,节省内存空间。

image-20210126211642801

4.问题解决

如果你不是WLS2而是虚拟机,根据情况找到相应文件即可。

当安装完成后,写代码进行编译时,有可能出现类似/usr/lib64/libstdc++.so.6: version GLIBCXX_3.4.29 not found (required by node)这样的问题,解决方法是:

strings /usr/local/lib64/libstdc++.so.6.0.29 | grep GLIBC
  • 1

image-20210126214639518

  1. 切换到/usr/lib/x86_64-linux-gnu目录,删除或者备份原来的libstdc++.so.6这个文件:

    cd /usr/lib/x86_64-linux-gnu
    
    • 1
    sudo rm -rf libstdc++.so.6
    
    • 1
  2. 重新建立链接:

    ln -s /usr/local/lib64/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    
    • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/261025
推荐阅读
相关标签
  

闽ICP备14008679号