编译GCC-7.2时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译GCC-7.2时出错相关的知识,希望对你有一定的参考价值。

从头开始编译Linux的GCC pass 2时出现此错误。

    configure: summary of build options:

  Version:           GNU MP 6.1.2
  Host type:         none-pc-linux-gnu
  ABI:               standard
  Install prefix:    /tools
  Compiler:          x86_64-lfs-linux-gnu-gcc
  Static libraries:  yes
  Shared libraries:  no

make[1]: Leaving directory '/mnt/lfs/sources/gcc-7.2.0/build'
Makefile:900: recipe for target 'all' failed
make: *** [all] Error 2

当我再次制作(只是再次打字制作)而不改变或重新配置任何东西我得到不同的错误。

configure: error: libmpfr not found or uses a different ABI (including static vs shared).
Makefile:5232: recipe for target 'configure-mpc' failed
make[1]: *** [configure-mpc] Error 1
make[1]: Leaving directory '/mnt/lfs/sources/gcc-7.2.0/build'
Makefile:900: recipe for target 'all' failed
make: *** [all] Error 2

我正在关注this指南。配置是:

CC=$LFS_TGT-gcc                                    
CXX=$LFS_TGT-g++                                   
AR=$LFS_TGT-ar                                     
RANLIB=$LFS_TGT-ranlib                             
../configure                                       
    --prefix=/tools                                
    --with-local-prefix=/tools                     
    --with-native-system-header-dir=/tools/include 
    --enable-languages=c,c++                       
    --disable-libstdcxx-pch                        
    --disable-multilib                             
    --disable-bootstrap                            
    --disable-libgomp

使用以下版本的mpfr,gmp,mpc

mpfr-4.0.0 
gmp-6.1.2 
mpc-1.1.0
答案

这是大多数gcc构建教程中的重要注意事项:

首先,我们强烈建议将GCC构建到与源树中不存在的源不同的目录中。这就是我们一般建立GCC的方式;构建srcdir == objdir应该仍然可以工作,但没有得到广泛的测试;不支持将objdir作为srcdir子目录的构建。

此外,在一个演练中(我现在无法找到它,可能稍后),它明确声明您无法从它所在的同一目录运行configure。

假设你有一个文件夹“srcdir = / path / to / parent / srcdir”,那么开始配置构建的推荐方法是:

cd /path/to/parent
mkdir objdir
cd objdir
$srcdir/configure

这是写在这里:https://gcc.gnu.org/install/configure.html

关于安装的整个文档是https://gcc.gnu.org/install/

另一答案

问题出在mpfr和mpc版本上。在下载它们时我遇到了错误,后来我错误地下载了错误的版本。 (大多数新手会犯这个错误,因为LFS书中的某些链接被破坏了,所以请仔细检查断开的链接并下载正确的版本)我已将其更改为LFS中提到的正确版本。重新编译后,它工作了!

以上是关于编译GCC-7.2时出错的主要内容,如果未能解决你的问题,请参考以下文章

Gcc 7.2 c++17 constexpr

gcc.7.2编译器Linux中的位置stdio.h文件在哪里?

fl 与 gcc 7.2 一起崩溃

在片段中创建自定义列表视图时出错。必需的活动,找到的片段

使用片段从数据库 SQLite 获取数据时出错

在我的“设置”片段中膨胀类 PreferenceScreen 时出错