赞
踩
Ubuntu最好配置一下镜像源!还有下载和安装
GCC
的时候需要科学上网
,因为需要下载一些其他依赖。
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
GCC11
Git
下载GCC11: https://github.com/gcc-mirror/gcc,需要科学上网
,包很大,下载会有点慢。git clone https://github.com/gcc-mirror/gcc.git
如果下载很慢,推荐直接用浏览器下载gcc-master.zip
文件:
解压下载的gcc-master.zip
文件: unzip gcc-master.zip
cd gcc-master
下载依赖:gmp
、mpfr
、mpc
、isl
:
./contrib/download_prerequisites
科学上网
也一样,我们直接查看 下./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 [...]
wget
或者curl -LO
去http://gcc.gnu.org/pub/gcc/infrastructure/
下载的依赖文件,所以我们可以直接用浏览器去这个网址去下载对应的文件并且放入到gcc-master
目录下。总之这四个依赖必须要下载好才能进行下一步。./contrib/download_prerequisites
:mkdir build && cd build
../configure --disable-multilib
configure
可以使用--prefix=/usr/local/gcc11
指定编译路径。
--disable-multilib
禁用和交叉编译相关的。
执行make -j8
命令,-j8
表示线程数,这个根据机器性能选一个合适的。请确保有20G
以上的内存空间!make
命令编译时间很长,一般4-8个小时不等,机器好的更快些。这时候可以去做别的事情了~
执行sudo make install
。
现在可以将gcc-master
目录删掉了,节省内存空间。
如果你不是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
切换到/usr/lib/x86_64-linux-gnu
目录,删除或者备份原来的libstdc++.so.6
这个文件:
cd /usr/lib/x86_64-linux-gnu
sudo rm -rf libstdc++.so.6
重新建立链接:
ln -s /usr/local/lib64/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/libstdc++.so.6
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。