在WSL上编译安装gcc10
在WSL上编译安装最新版本的编译器,之后的C开发环境应该会以WSL为主啦
(当然,这个博客也适用于各个Linux发行版)
GCC10.2.0
GCC10.2于2020/07/23发布,修复了10.1存在的一系列bug并且增强了一些支持
1 下载源代码
GNU镜像列表
我选择了从gcc阿里云镜像下载gcc10.2.0源代码
下载完成后得到一个压缩包👇

2 解压压缩包
将它放到WSL目录下
请务必打开WSL使用cp或者mv命令进行操作,直接利用windows资源管理器移动文件可能会造成不能识别的错误
# 打开bash
cp /mnt/.../gcc-10.2.0.tar.gz ~/gcc
cd到压缩包目录下输入tar zxvf gcc-10.2.0.tar.gz进行解压
解压大约耗时10分钟
3 配置
gcc自带configure脚本帮助你配置好一切环境并生成makefile,可以用--prefix=来指定编译目录,否则就将直接编译到当前目录
configure必须在解压出来的gcc目录下才能访问
注意GCC不支持直接编译到源代码文件夹,所以需要我们另外在解压得到的文件夹中建一个build文件夹
mkdir build
cd build
../configure # 利用GCC自带的脚本进行配置
然后如果之前没有编译过的话,会提示你缺了一些依赖👇

...然后网上的一些教程就会告诉你:去那些包的官网下源码然后自己编译接着折腾LD_LIBRARY_PATH变量
说的就是你C S D N
不过这样的教程还挺多的(博客园和阿里云社区上也都有
只能说,不要信这些鬼话(血与泪的教训)
不要自己下载编译安装这些依赖!!!

Stackoverflow上这位仁兄说的太好了
就是说嘛,都0202年了,GCC怎么可能还强制要求你自己去折腾呢?🤦
况且自己折腾完全没法处理各种环境配置问题。。
gcc在./contrib目录下提供了download_prerequisite脚本用于下载并解压需要的包
所以只需执行./contrib/download_prerequisite即可,下载没有进度条,需要一定的时间
一段时间的等待过后,当前目录下就解压好所有所需的依赖了,接下来重新进入build文件夹配置
cd build
../configure # --prefix=xxx
再次等待一小会后,配置成功!
4 编译&安装
回到源代码文件夹执行make -j 32 (其中-j用于指定线程数)
编译相当耗时,如果有没安装的依赖,它会自动配置编译并安装,最后才是编译gcc本体
编译完成大约需要2-4个小时可以先睡一觉
最后sudo make install完成安装
查看gcc/g++版本↓

现在可以体验gcc10带来的concepts, ranges, coroutine等C++20特性了😀
下面是只写了个开头的Clang10.0.1编译
Clang10.0.1
官方编译文档
Clang的build基于cmake,这也意味着可以在windows上采用完全相同的方式来编译Clang
不过要编译Clang10的话,cmake的版本至少要在3.13.4以上
官网文档的第一行说明👇

但是...

ubuntu1804目前apt里最新版的cmake也只有3.10.x,所以要想build最新的clang就只能自己去cmake官网下载cmake源码来编译了
在WSL上编译安装gcc10
在WSL上编译安装最新版本的编译器,之后的C开发环境应该会以WSL为主啦
(当然,这个博客也适用于各个Linux发行版)
GCC10.2.0
GCC10.2于2020/07/23发布,修复了10.1存在的一系列bug并且增强了一些支持
1 下载源代码
GNU镜像列表
我选择了从gcc阿里云镜像下载gcc10.2.0源代码
下载完成后得到一个压缩包👇
2 解压压缩包
将它放到WSL目录下
cd到压缩包目录下输入tar zxvf gcc-10.2.0.tar.gz进行解压3 配置
gcc自带configure脚本帮助你配置好一切环境并生成makefile,可以用
--prefix=来指定编译目录,否则就将直接编译到当前目录configure必须在解压出来的gcc目录下才能访问
然后如果之前没有编译过的话,会提示你缺了一些依赖👇
...然后网上的一些教程就会告诉你:去那些包的官网下源码然后自己编译接着折腾
LD_LIBRARY_PATH变量只能说,不要信这些鬼话(血与泪的教训)
不要自己下载编译安装这些依赖!!!
gcc在./contrib目录下提供了download_prerequisite脚本用于下载并解压需要的包
所以只需执行
./contrib/download_prerequisite即可,下载没有进度条,需要一定的时间一段时间的等待过后,当前目录下就解压好所有所需的依赖了,接下来重新进入
build文件夹配置再次等待一小会后,配置成功!
4 编译&安装
回到源代码文件夹执行
make -j 32(其中-j用于指定线程数)编译相当耗时,如果有没安装的依赖,它会自动配置编译并安装,最后才是编译gcc本体
编译完成大约需要2-4个小时可以先睡一觉
最后
sudo make install完成安装查看gcc/g++版本↓
现在可以体验gcc10带来的concepts, ranges, coroutine等C++20特性了😀
下面是只写了个开头的Clang10.0.1编译