前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux From Scratch(LFS11.0)交叉编译临时工具 - GCC-11.2.0 - 第二遍

Linux From Scratch(LFS11.0)交叉编译临时工具 - GCC-11.2.0 - 第二遍

作者头像
Lucifer三思而后行
发布2021-10-08 15:27:19
4080
发布2021-10-08 15:27:19
举报
文章被收录于专栏:公众号:Lucifer三思而后行

GCC 软件包包含 GNU 编译器集合,其中有 C 和 C++ 编译器。

安装 GCC

解压软件包:

代码语言:javascript
复制
echo $LFS
cd $LFS/sources
tar xf gcc-11.2.0.tar.xz
cd gcc-11.2.0

就像第一次构建 GCC 时一样,它需要 GMP、MPFR 和 MPC 三个包。解压它们的源码包,并将它们移动到 GCC 要求的目录名:

代码语言:javascript
复制
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”:

代码语言:javascript
复制
case $(uname -m) in
  x86_64)
    sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64
  ;;
esac

再次创建一个独立的构建目录:

代码语言:javascript
复制
mkdir -v build
cd build

创建一个符号链接,以允许 libgcc 在构建时启用 POSIX 线程支持:

代码语言:javascript
复制
mkdir -pv $LFS_TGT/libgcc
ln -s ../../../libgcc/gthr-posix.h $LFS_TGT/libgcc/gthr-default.h

在开始构建 GCC 前,记得清除所有覆盖默认优化开关的环境变量。

编译并安装 GCC:

代码语言:javascript
复制
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 编译器的选择权留给系统管理员:

代码语言:javascript
复制
ln -sv gcc $LFS/usr/bin/cc

安装完成后清理工作:

代码语言:javascript
复制
cd ../..
rm -rf gcc-11.2.0

本次分享到此结束啦~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。

❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/10/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装 GCC
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档