Ubuntu lfs gcc无法编译

Ubuntu lfs gcc无法编译,ubuntu,linux-from-scratch,Ubuntu,Linux From Scratch,我正在努力使gcc从零开始符合Linux。但是我遇到了一个错误。 可能有用的附加信息: 0lfs手册版本7.7-systemd 1.我正在运行ubuntu linux uname-r:4.4.0-142-generic 2.我已经检查了版本和库 bash, version 4.3.11(1)-release /bin/sh -> /bin/dash Binutils: (GNU Binutils for Ubuntu) 2.24 bison (GNU Bison) 3.0.2

我正在努力使gcc从零开始符合Linux。但是我遇到了一个错误。

可能有用的附加信息:
0lfs手册版本7.7-systemd
1.我正在运行ubuntu linux
uname-r:4.4.0-142-generic
2.我已经检查了版本和库

 bash, version 4.3.11(1)-release
 /bin/sh -> /bin/dash
 Binutils: (GNU Binutils for Ubuntu) 2.24
 bison (GNU Bison) 3.0.2
 /usr/bin/yacc -> /usr/bin/bison.yacc
 bzip2,  Version 1.0.6, 6-Sept-2010.
 Coreutils:  8.21
 diff (GNU diffutils) 3.3
 find (GNU findutils) 4.4.2
 GNU Awk 4.0.1
 /usr/bin/awk -> /usr/bin/gawk
 gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4
 g++ (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4
 (Ubuntu EGLIBC 2.19-0ubuntu6.14) 2.19
 grep (GNU grep) 2.16
 gzip 1.6
 Linux version 4.4.0-142-generic (buildd@lcy01-amd64-006) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4) ) #168~14.04.1-Ubuntu SMP Sat Jan 19 11:26:28 UTC 2019
 m4 (GNU M4) 1.4.17
 GNU Make 3.81
 GNU patch 2.7.1
 Perl version='5.18.2';
 sed (GNU sed) 4.2.2
 tar (GNU tar) 1.27.1
 makeinfo (GNU texinfo) 5.2
 xz (XZ Utils) 5.1.0alpha
 g++ compilation OK
这是我正在运行的代码

../gcc-4.9.2/configure                             \
    --target=$LFS_TGT                              \
    --prefix=/tools                                \
    --with-sysroot=$LFS                            \
    --with-newlib                                  \
    --without-headers                              \
    --with-local-prefix=/tools                     \
    --with-native-system-header-dir=/tools/include \
    --disable-nls                                  \
    --disable-shared                               \
    --disable-multilib                             \
    --disable-decimal-float                        \
    --disable-threads                              \
    --disable-libatomic                            \
    --disable-libgomp                              \
    --disable-libitm                               \
    --disable-libquadmath                          \
    --disable-libsanitizer                         \
    --disable-libssp                               \
    --disable-libvtv                               \
    --disable-libcilkrts                           \
    --disable-libstdc++-v3                         \
    --enable-languages=c,c++
更新

这是第5章中的第一个工具链构建,我解包了gcc源代码并使用了这些新的源代码。

首先,我强烈建议使用LFS书籍的当前版本(截至撰写时为9.0)。您使用的7.7版现在已经快5年了

其次,您的主机系统(Ubuntu)不符合LFS要求:

  • /bin/sh
    应该是指向
    /bin/bash
    的链接。在您的情况下,它链接到
    /bin/dash
    。简单的修复方法是手动更改它。根目录:
  • rm/bin/sh
    ln-sv/bin/bash/bin/sh
    
  • 您的主机系统使用EGLIBC而不是GLIBC。EGLIBC是为嵌入式设备而设计的,试图与标准glibc兼容,自2014年初开始停产。不幸的是,我不知道是否有可能在Ubuntu上将EGLIBC改为GLIBC(安装GLIBC,然后删除EGLIBC可以工作)

  • 大家好,欢迎来到SO。为了帮助你,我们需要更多的信息。构建lfs 7.7有什么原因吗?它有点旧,最新的稳定版本是9.0。还有,在lfs的书中,这发生在哪里?它是第一个工具链构建,第二个,还是第6章中的最终构建?您是否在上一次构建之后删除了gcc目录,解压了gcc源代码,并正在处理这个新的源代码?请更新你的问题。哦,这是我第一次问这个问题,我感到非常兴奋。谢谢我的朋友们。我更新我的问题。看来我应该用新版9.0来学习?谢谢!现在我使用的是最新版本,实际上我遇到了符号问题。我会在学习期间注意GLIBC的。@xiaoWu太棒了!如果我的答案确实帮助了你,请接受它(标记问题被解决)并考虑投票。谢谢:)
    ../gcc-4.9.2/configure                             \
        --target=$LFS_TGT                              \
        --prefix=/tools                                \
        --with-sysroot=$LFS                            \
        --with-newlib                                  \
        --without-headers                              \
        --with-local-prefix=/tools                     \
        --with-native-system-header-dir=/tools/include \
        --disable-nls                                  \
        --disable-shared                               \
        --disable-multilib                             \
        --disable-decimal-float                        \
        --disable-threads                              \
        --disable-libatomic                            \
        --disable-libgomp                              \
        --disable-libitm                               \
        --disable-libquadmath                          \
        --disable-libsanitizer                         \
        --disable-libssp                               \
        --disable-libvtv                               \
        --disable-libcilkrts                           \
        --disable-libstdc++-v3                         \
        --enable-languages=c,c++