linux - libmpfr.so.4 与 --disable-shared 的依赖关系

标签 linux gcc toolchain mpfr

各位! 我有同样的结果 **

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-getyumemerge,无论它是什么。必须针对较新的库重建 mpfr。

关于linux - libmpfr.so.4 与 --disable-shared 的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15326978/

相关文章:

linux - 虚拟页和页框的区别?

linux - TIME_WAIT 连接太多,得到 "Cannot assign requested address"

c - INT_MIN % -1 会产生未定义的行为吗?

macos - 如何在 OS X 上构建 fat gcc46 libstdc++?

c - 在 arm-none-eabi 工具链中支持 ASAN 标志

c++ - 期望在两个相同平台上构建两个共享库是否合理?

php - Cron 运行脚本但代码不执行

linux - fork() 如何知道它是在子进程中还是在父进程中?

gcc - GCC IR与LLVM IR有何不同?

c - C中,编译时查找全局const变量值