在Ubuntu上编译gcc

新建一个文件夹用于打包deb,我用的文件夹名字是gcc_10.2.0-1:

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:

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/里面。

执行以下命令下载和解压源码:

cd gcc-compile 
wget 源码包(xz格式)地址
tar xvf gcc-*.xz

获得目录gcc-10.2.0。调用gcc-10.2.0自带的脚本下载依赖包:

gcc-10.2.0/contrib/download_prerequisites

在gcc-compile目录下,新建一个objdir来进行编译:

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的命令就是:

~/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就好了:

make -j8
make install

留下评论