Linux From Scratch(LFS11.0)交叉编译临时工具 - GCC-11.2.0 - 第二遍
Posted Lucifer三思而后行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux From Scratch(LFS11.0)交叉编译临时工具 - GCC-11.2.0 - 第二遍相关的知识,希望对你有一定的参考价值。
GCC 软件包包含 GNU 编译器集合,其中有 C 和 C++ 编译器。
安装 GCC
解压软件包:
echo $LFS
cd $LFS/sources
tar xf gcc-11.2.0.tar.xz
cd gcc-11.2.0
就像第一次构建 GCC 时一样,它需要 GMP、MPFR 和 MPC 三个包。解压它们的源码包,并将它们移动到 GCC 要求的目录名:
tar -xf ../mpfr-4.1.0.tar.xz
mv -v mpfr-4.1.0 mpfr
tar -xf ../gmp-6.2.1.tar.xz
mv -v gmp-6.2.1 gmp
tar -xf ../mpc-1.2.1.tar.gz
mv -v mpc-1.2.1 mpc
如果是在 x86_64 上构建,修改 64 位库文件的默认目录名为 “lib”:
case $(uname -m) in
x86_64)
sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64
;;
esac
再次创建一个独立的构建目录:
mkdir -v build
cd build
创建一个符号链接,以允许 libgcc 在构建时启用 POSIX 线程支持:
mkdir -pv $LFS_TGT/libgcc
ln -s ../../../libgcc/gthr-posix.h $LFS_TGT/libgcc/gthr-default.h
在开始构建 GCC 前,记得清除所有覆盖默认优化开关的环境变量。
编译并安装 GCC:
time { ../configure \\
--build=$(../config.guess) \\
--host=$LFS_TGT \\
--prefix=/usr \\
CC_FOR_TARGET=$LFS_TGT-gcc \\
--with-build-sysroot=$LFS \\
--enable-initfini-array \\
--disable-nls \\
--disable-multilib \\
--disable-decimal-float \\
--disable-libatomic \\
--disable-libgomp \\
--disable-libquadmath \\
--disable-libssp \\
--disable-libvtv \\
--disable-libstdcxx \\
--enable-languages=c,c++ && make && make DESTDIR=$LFS install;}
最后,还需要创建一个符号链接。许多程序和脚本运行 cc 而不是 gcc,因为前者能够保证程序的通用性,使它可以在所有 UNIX 系统上使用,无论是否安装了 GNU C 编译器。运行 cc 可以将安装哪种 C 编译器的选择权留给系统管理员:
ln -sv gcc $LFS/usr/bin/cc
安装完成后清理工作:
cd ../..
rm -rf gcc-11.2.0
本次分享到此结束啦~
如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。
❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️
以上是关于Linux From Scratch(LFS11.0)交叉编译临时工具 - GCC-11.2.0 - 第二遍的主要内容,如果未能解决你的问题,请参考以下文章
Linux From Scratch(LFS11.0)构建 LFS 系统 - 清理系统
Linux From Scratch(LFS11.0)构建 LFS 系统 - GCC-11.2.0
Linux From Scratch(LFS11.0)收尾工作
Linux From Scratch(LFS11.0)收尾工作