1

每个人!我有同样的结果**

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

但在另一个配置下:

../gcc.s/configure      \
--target=$LFS_TGT       \
--prefix=/tools     \
--with-sysroot=$LFS     \
--with-newlib       \
--without-headers       \
--with-local-prefix=/tools  \
--with-native-system-header-dir=/tools/include  \
--disable-nls       \
--disable-shared        \
--disable-multlib       \
--disable-decimal-float \
--disable-threads       \
--disable-libmudflap    \
--disable-libssp        \
--disable-libgomp       \
--disable-libquadmath   \
--enable-language=c     

在 GCC 源代码树中存在 gmp、mpc、mpfr

我的问题是如何--disable-shared 将 cc1 与 gcc 构建结果中存在的libmpfr.so.4insteed static链接起来:libmpfr.a

gcc.b/mpfr/src/.libs/libmpfr.a
4

1 回答 1

0

首先,运行pacman -Syu并执行任何/所有更新。请务必注意 pacman 的输出(检查/var/log/pacman.log是否有大量输出)。查找并合并找到的任何 .pacnew,日志将显示这些文件的位置,或者您也可以ls -al /etc/*.pacnew,但无论如何都要检查日志以确保您没有错过任何子目录或其他位置的任何文件。此外,如果内核已更新,请确保重新启动。如果这不能解决问题,则针对最新的库重建 mpfr。

是有关处理 .pacnew 和 .pacsave 文件的 Arch Linux Wiki 的链接。

执行完整更新

# pacman -Syu

如果 mpfr 不能从更新中修复

# pacman -Syu mpfr 在安装/更新时始终使用-Syu以确保所有 repo 都已更新。

检查 libmpfr.so.* 所有权。

# pacman -Qo /usr/lib/libmpfr.so

/usr/lib/libmpfr.so.4.1.1 is owned by mpfr 3.1.1.p2-2

如果您在更新后遇到任何问题,请将日志和错误消息粘贴到 pastebin 网站上,我会看看。

抱歉,我以为这是被标记的[archlinux],但显然不是(谢谢 Jonathan Wakely)。但同样的步骤也适用。替换pacman -*为您的发行版包管理器apt-get, yum, emerge,无论它可能是什么。mpfr 必须针对较新的库进行重建。

于 2013-03-10T20:36:49.110 回答