新建一个文件夹用于打包deb,我用的文件夹名字是gcc_10.2.0-1:
1
2
3
mkdir ~/gcc_10.2.0-1
mkdir -p gcc_10.2.0-1/usr/local
mkdir -p gcc_10.2.0-1/DEBIAN
新建一个文件夹用于存放gcc源码和编译目录,这里是gcc-compile:
1
mkdir ~/gcc-compile
然后从阿里云上面找到gcc的源码包,所有gcc源码包的存放地址是https://mirrors.aliyun.com/gnu/gcc,各个版本号就是一个目录,比如我们要编译10.2.0,gcc-10.2.0的源码包就在https://mirrors.aliyun.com/gnu/gcc/gcc-10.2.0/里面。
执行以下命令下载和解压源码:
1
2
3
cd gcc-compile
wget 源码包(xz格式)地址
tar xvf gcc-*.xz
获得目录gcc-10.2.0。调用gcc-10.2.0自带的脚本下载依赖包:
1
gcc-10.2.0/contrib/download_prerequisites
在gcc-compile目录下,新建一个objdir来进行编译:
1
2
mkdir objdir
cd objdir
gcc的configure有一些配置项,比较有用的是:
选项 | 解释 |
--prefix= | 安装目录前缀,这里使用~/gcc_10.2.0-1/usr/local |
--build= | 编译类型,这里用x86_64-linux-gnu |
--host= | 编译的主机类型,可以理解成本机的系统类型,这里用x86_64-linux-gnu |
--target= | 编译出来的gcc运行的目标平台类型,因为是用在本机上,所以是x86_64-linux-gnu |
--enable-checking= | release |
--enable-languages= | 编译的gcc支持的语言类型,我只用c和c++,所以就是c,c++ |
--disable-multilib | 因为只打算支持x64,所以就禁用对x32的支持 |
所以进行configure的命令就是:
1
~/gcc-compile/gcc-10.2.0/configure --prefix=~/gcc\_10.2.0-1/usr/local --disable-multilib --build=x86\_64-linux-gnu --host=x86\_64-linux-gnu --target=x86\_64-linux-gnu --enable-checking=release --enable-languages=c,c++
之后就make和install就好了:
1
2
make -j8
make install