无法配置gcc - 找不到mpfr

Rob*_*son 13 gcc compilation mpfr

我正在安装gcc 4.5.2,mpc为0.8.2,mpfr为3.1.0,gmp为5.0.2.我已将每个mpc,mpfr和gmp目录复制到gcc-4.5.2目录中(删除版本标记).GCC成功配置.然而,当我运行make时,我得到:

checking for MPFR... no
configure: error: libmpfr not found or uses a different ABI.
make[1]: *** [configure-mpc] Error 1
make[1]: leaving directory cross/build/gcc
make: *** [all] Error 2
Run Code Online (Sandbox Code Playgroud)

MPFR位于cross/src/gcc-4.5.2/mpfr.MPFR已经成功构建.有谁知道为什么mpc无法配置?

我认为问题可能部分与MPFR的libs/headers在cross/src/gcc-4.5.2/mpfr/src中有关,而不在cross/src/gcc-4.5.2/mpfr中.我所做的只是提取和复制 - 这是默认的目录结构.

Rak*_*kib 27

我遇到了同样的问题.但似乎发生了这种情况,因为最新版本的MPFR(在您的情况下为3.1.0)更改了目录层次结构.

相反,在配置之前,当您在gcc的源目录中时运行以下命令(可能仅适用于gcc4.5.2或更高版本):

./contrib/download_prerequisites
Run Code Online (Sandbox Code Playgroud)

它将下载必要的MPFR,GMP和MPC版本(但可能不是最新版本)并解压缩用于gcc安装.

之后,您可以继续进行configure,make和make install.

希望这可以帮助.

-Rakib


Rob*_*son 8

我发现,如果我跑export C_INCLUDE_PATH=/cross/gcc-4.5.2/mpfr/src那么export LD_LIBRARY_PATH=/cross/build-gcc-4.5.2/mpfr/src/.libs,最后export LIBRARY_PATH=$LD_LIBRARY_PATH一切都按预期.

唠叨的问题是为什么gcc自己的配置脚本设置错误的标志.它应该知道mpfr的libs不在mpfr/.libs中,而是在mpfr/src/.libs中,但它将前者传递给mpc/configure.

  • 这改变了MPFR 3.1(标题位置),这就是GCC使用旧版本的原因.不严格支持较新版本,[GCC基础设施下载页面](http://mirrors-us.seosue.com/gcc/infrastructure/)仍然列出了2.4.2版本. (2认同)