构建GCC 4.6 - libmpfr.so.4 - 无法打开共享对象文件

时间:2011-05-06 00:02:28

标签: linux gcc configuration

我正在尝试在CentOS 5.5版(最终版)下构建GCC 4.6。我刚刚构建了GMP-5.0.1,MPC-0.9和MPFR-3.0.1,并使用了以下配置命令:

../ configure --prefix = / users / xxxx / apps / mygcc4.6 --disable-checking --enable-threads = posix --enable-languages = c,c ++,fortran --with -mpfr = / users / xxxx / code / gcc / mpfr-3.0.1-install-cyprus --with-gmp = / users / xxxx / code / gcc / gmp-5.0.1-install-cyprus --with-mpc = /用户/ XXXX /代码/ GCC / MPC-0.9-安装-塞浦路斯

在此之后,我运行make并在大约5分钟后得到以下错误消息:

检查对象文件的后缀... configure:error:in /users/xxxx/code/gcc/gcc-4.6.0/obj/x86_64-unknown-linux-gnu/libgcc': configure: error: cannot compute suffix of object files: cannot compile See config.log'了解更多详情。

config.log表示涉及最近生成的程序(cc1):

/users/xxxx/code/gcc/gcc-4.6.0/obj /./ GCC / CC1

的确,如果我在没有参数的情况下运行此程序,我会在config.log中找到相同的错误消息:

加载共享库时出现

错误:libmpfr.so.4:无法打开共享对象文件:没有这样的文件或目录

但是,libmpfr.so.4位于提供的lib子目录中,使用--with-mpfr标志进行配置,如上所示。我有LD_LIBRARY_PATH和LIBRARY_PATH为空。知道我怎么能克服这个错误吗?

3 个答案:

答案 0 :(得分:5)

确保您的库实际位于给定的目录中,而不是在某个lib子目录中。按照您的建议使用export LD_LIBRARY_PATH=/users/xxxx/code/gcc/mpfr-3.0.1-install-cyprus; - )

答案 1 :(得分:3)

我知道这个帖子已经过时了。但是,我不得不发表评论并说,在一个非常类似的问题上敲打我的头撞了5个多小时后(检查目标文件的后缀...配置:错误:无法计算目标文件的后缀:无法编译)和阅读了安装手册,众多论坛,并在相关系统上尝试了各种各样的事情,我找到了这个简短但非常有用的帖子。该问题与LD_LIBRARY_PATH正好相关。 简而言之,当你从源码构建时,如果你点击这个墙,则导出LD_LIBRARY_PATH变量以指向libs的源构建目录。 无论如何,为我工作。

祝你好运。

答案 2 :(得分:0)

我知道这个线程已经过时了。在WSL上安装mpfr时遇到了类似的问题。构建良好并且mpfr已正确安装,但是当我编写了一个小C文件以查看是否可以访问头文件并为安装打印版本时-我可以编译C文件,但是当我尝试运行已编译的对象时-会给我一个错误。 C文件是

#include <stdio.h>
#include <mpfr.h>

int main (void) {
    printf ("MPFR library: %-12s\nMPFR header: %s (based on %d.%d.%d)\n",
    mpfr_get_version (), MPFR_VERSION_STRING, MPFR_VERSION_MAJOR,
    MPFR_VERSION_MINOR, MPFR_VERSION_PATCHLEVEL);
    return 0;
}

我正在用它编译

gcc -o version mpfr_presence.c -lmpfr -lgmp

但是当我尝试使用./version运行它时,会出现以下错误,

./version: error while loading shared libraries: libmpfr.so.6: cannot open shared object file: No such file or directory

我使用以下方法解决了此错误

sudo apt-get update
sudo apt-get install libmpfr4

然后当它说libmpfr4已经是最新版本时,请确定

sudo apt-get install --reinstall libmpfr4

现在./version给了我

MPFR library: 4.0.1
MPFR header: 4.0.1 (based on 4.0.1)