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

Cannot open libmpc.so.3 while making gcc4.8.1

本文关键字:libmpc so gcc4 1时      更新时间:2023-10-16

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

以下是我的安装步骤:

  1. 安装libgmp、libmpfr和libmpc。

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

  3. 制作

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

  5. sudo制作安装。

在最后一步中,我得到了这个错误:

/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?我该怎么修?

根据您的建议,我已经成功安装了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. 制造。

  6. 添加符号链接:

    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/limpfr.so.4

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

  7. sudo制作安装。

比你KiaMorot。谢谢特洛伊人。

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

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

如果有人使用自己手动构建的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和friends的位置。

您必须检查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的手册页。