制作gcc4.8.1时无法打开libmpc.so.3

时间:2013-07-02 12:43:46

标签: c++ gcc

我想在ubuntu 10.04上安装gcc4.8.1。

以下是我的安装步骤:

  1. 安装libgmp,libmpfr和libmpc。

  2. 切换到gcc4.8.1源代码目录后,运行“./configure --prefix = / usr / bin / gcc4.8.1 --with-gmp = / opt / pkg / gmp5.1.2 --with -mpfr = / opt / pkg / mpfr3.1.2 --with-mpc = / opt / pkg / mpc1.0.1“

  3. export LD_LIBRARY_PATH = / opt / pkg / gmp5.1.2 / lib:/opt/pkg/mpfr3.1.2/lib:/opt/pkg/mpc1.0.1/lib

  4. sudo make install。

  5. 在最后一步中我收到此错误:

    /usr/local/sbin/gcc-4.8.1/host-i686-pc-linux-gnu/gcc/cc1: error while loading shared   libraries: libmpc.so.3: cannot open shared object file: No such file or directory
    make[5]: *** [install-exec-hook] Error 1
    make[5]: Leaving directory `/usr/local/sbin/gcc-4.8.1/i686-pc-linux-gnu/libjava'
    make[4]: *** [install-exec-am] Error 2
    make[4]: Leaving directory `/usr/local/sbin/gcc-4.8.1/i686-pc-linux-gnu/libjava'
    make[3]: *** [install-am] Error 2
    make[3]: Leaving directory `/usr/local/sbin/gcc-4.8.1/i686-pc-linux-gnu/libjava'
    make[2]: *** [install-recursive] Error 1
    make[2]: Leaving directory `/usr/local/sbin/gcc-4.8.1/i686-pc-linux-gnu/libjava'
    make[1]: *** [install-target-libjava] Error 2
    make[1]: Leaving directory `/usr/local/sbin/gcc-4.8.1'
    make: *** [install] Error 2
    

    我已切换到libmpc库路径并使用ldd测试了libmpc.so.3。它已成功安装。为什么说它无法打开共享对象libmpc.so.3?我该如何解决?

4 个答案:

答案 0 :(得分:4)

根据你的建议,我已经成功安装了gcc4.8.1。以下是我的步骤:

  1. 从/ opt / pkg删除gmp,mpfr和mpc。

  2. 使用默认配置安装gmp,mpfr和mpc。这些软件包将安装在/ usr / local / lib。

  3. export LD_LIBRARY_PATH = / usr / local / lib:$ LD_LIBRARY_PATH。

  4. 输入gcc源目录,运行“./configure”。

  5. 添加符号链接:

    sudo ln -s /usr/local/lib/libgmp.so.10 /usr/lib/libgmp.so.10

    sudo ln -s /usr/local/lib/libmpfr.so.4 /usr/lib/libmpfr.so.4

    sudo ln -s /usr/local/lib/libmpc.so.3 /usr/lib/libmpc.so.3

  6. sudo make install。

  7. 比起你的KiaMorot。谢谢你trojanfoe。

答案 1 :(得分:2)

我不相信这里的任何答案都能解决这个问题。你的问题是最后两个步骤

export LD_LIBRARY_PATH=/opt/pkg/gmp5.1.2/lib:/opt/pkg/mpfr3.1.2/lib:/opt/pkg/mpc1.0.1/lib
sudo make install

导出LD_LIBRARY_PATH是正确的,但是当您在最后一步中使用sudo更改为root用户时,您将重置所有环境变量。

解决这个问题的一种方法:

sudo -s  # become root user
export LD_LIBRARY_PATH=/opt/pkg/gmp5.1.2/lib:/opt/pkg/mpfr3.1.2/lib:/opt/pkg/mpc1.0.1/lib
make install  # don't use sudo here

答案 2 :(得分:2)

如果有人使用他们自己手动构建的libgmp,libmpfr和libmpc而不是系统提供的版本来发现这个:

export LD_LIBRARY_PATH=/opt/your-prefix-directory
make本身需要

,即使gcc ./configure

一起运行时也是如此
--with-gmp=/opt/your-prefix-directory --with-mpc=/opt/your-prefix-directory --with-mpfr=/opt/your-prefix-directory

你需要指定链接器应该在哪里寻找libgmp和朋友。

答案 3 :(得分:1)

您必须检查libmpc.so.3是否是成功创建的libmpc.so.3.0.0的符号链接。由于您已手动安装此库和sym,因此可能会出现此错误。链接可能会丢失。你可以试试这个:

sudo ln -s /opt/pkg/mpc1.0.1/lib/libmpc.so.3.0.0 /opt/pkg/mpc1.0.1/lib/libmpc.so.3

ln的语法是ln -s <real path to file> <symbolic link name>。有关更多信息,请查看ln的手册页。