各位! 我有同样的结果 **
error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory
但在另一个配置下:
../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 链接到 libmpfr.so.4
代替静态 libmpfr.a
它存在于 gcc 构建结果中:
gcc.b/mpfr/src/.libs/libmpfr.a
最佳答案
首先,运行 pacman -Syu
并执行任何/所有更新。 确保注意 pacman 的输出(如果有大量输出,请检查 /var/log/pacman.log
)。查找并合并任何找到的 .pacnew,日志将显示这些文件的位置,或者您也可以 ls -al/etc/*.pacnew
,但无论如何都要检查日志以确保您没有不要错过任何子目录或其他位置中的任何内容。此外,如果更新了内核,请确保重新启动。如果这不能解决问题,则针对最新的库重建 mpfr。
Here是关于处理 .pacnew 和 .pacsave 文件的 Arch Linux Wiki 的链接。
执行完整更新
#pacman -Syu
如果 mpfr 不能通过更新修复
# pacman -Syu mpfr
Always 在安装/更新时使用 -Syu
以确保所有 repo 都是直到更新。
检查 libmpfr.so.* 所有权。
# pacman -Qo/usr/lib/libmpfr.so
/usr/lib/libmpfr.so.4.1.1 归 mpfr 3.1.1.p2-2 所有
如果您在更新后遇到任何问题,请将日志和错误消息粘贴到 pastebin 站点上,我会查看。
对不起,
我认为这被标记为 [archlinux]
但它显然不是(谢谢 Jonathan Wakely)。但同样的步骤适用。将 pacman -*
替换为您的分发包管理器 apt-get
、yum
、emerge
,无论它是什么。必须针对较新的库重建 mpfr。
关于linux - libmpfr.so.4 与 --disable-shared 的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15326978/