Ubuntu24.04版本解决RK3568编译器 libmpfr.so.4: cannot open shared object

问题描述

在Ubuntu24.04版本上编译RK3568应用程序关于libmpfr.so.4: cannot open shared object问题,如下所示:

/tools/ToolsChain/rockchip/rockchip_rk3568/host/bin/../libexec/gcc/aarch64-buildroot-linux-gnu/9.3.0/cc1plus: error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory
make: *** [Makefile:55: publib/iniparser/dictionary.o] Error 1

解决方案

将高版本的 libmpfr(如 libmpfr.so.6),手动创建符号链接:
执行以下命令
sudo find / -name "libmpfr.so.6"
找到libmpfr.so.6文件的位置,如下图所示:
在这里插入图片描述
执行以下命令添加链接

sudo ln -s libmpfr.so.6 libmpfr.so.4

在这里插入图片描述
之后到需要编译的应用程序目录重新编译即可。

<think>嗯,用户遇到了一个关于Ubuntu系统中udisksd的错误信息:“failed to load module mdraid: libbd_mdraid.so.2: cannot open shared object file: No such file or directory.” 我需要先理解这个错误的原因。错误提示显示系统在尝试加载mdraid模块时找不到libbd_mdraid.so.2这个共享库文件。这可能是因为相关的软件包没有安装或者被意外删除。 首先,我应该回忆一下mdraid模块的作用。mdraid通常与Linux的软件RAID(如mdadm)有关,而libbd_mdraid.so.2可能是该模块依赖的库文件。这个库文件可能属于某个特定的软件包,用户可能没有安装或者安装不完整。 接下来,我需要确定哪个软件包提供了libbd_mdraid.so.2文件。在Ubuntu中,可以使用dpkg或apt-file来查找文件对应的包。用户可能需要安装apt-file来搜索,但如果没有安装的话,可以先建议他们安装apt-file,然后更新数据库,再进行查找。 例如,运行命令: sudo apt install apt-file sudo apt-file update apt-file search libbd_mdraid.so.2 根据之前的经验,这个库可能属于libblockdev-mdraid2这个包。因此,用户可能需要安装这个包来解决依赖问题。如果确认是这个包,那么安装它应该可以解决问题。 另外,用户可能之前卸载了某些相关的软件包,导致依赖缺失。因此,除了安装libblockdev-mdraid2之外,还需要检查udisks2的依赖是否完整,可能需要重新安装udisks2以确保所有依赖都被正确安装。 如果安装完libblockdev-mdraid2后问题仍然存在,可能需要进一步检查系统日志,或者重新配置udisks2的服务。另外,更新系统和清理残留配置文件也可能有帮助。 在回答用户时,应该分步骤说明解决方法,包括安装缺失的包、重新安装udisks2、重启服务以及验证问题是否解决。同时,要提醒用户如果遇到其他依赖问题,可以使用apt的修复命令,并建议他们在操作前备份重要数据,以防万一。 最后,确保回答清晰,结构合理,用户能够按照步骤操作,并理解每一步的作用。同时,提供常见问题的排查方法,帮助用户自行解决可能出现的问题。</think>以下是针对Ubuntu系统中 `udisksd` 报错 **`failed to load module mdraid: libbd_mdraid.so.2`** 的详细分析和解决方案: --- ### **错误原因** 错误信息表明 `udisksd`(`udisks2` 守护进程)在尝试加载 `mdraid` 模块时失败,原因是缺少共享库文件 **`libbd_mdraid.so.2`**。 该文件属于 `libblockdev-mdraid2` 软件包,通常由以下原因导致: 1. `libblockdev-mdraid2` 未安装或被意外删除。 2. `udisks2` 的依赖包不完整。 3. 软件源配置错误或未更新。 --- ### **解决方案** #### **1. 安装缺失的库文件** 直接安装 `libblockdev-mdraid2` 软件包: ```bash sudo apt update sudo apt install libblockdev-mdraid2 ``` #### **2. 重新安装 `udisks2`** 确保 `udisks2` 及其依赖完整: ```bash sudo apt install --reinstall udisks2 ``` #### **3. 重启 `udisksd` 服务** ```bash sudo systemctl restart udisks2.service ``` #### **4. 验证修复** - 重新插入存储设备(如U盘),观察是否正常挂载。 - 检查日志是否仍有报错: ```bash journalctl -u udisks2.service | grep -i mdraid ``` --- ### **其他排查步骤** 1. **修复依赖关系** 如果安装过程中出现依赖问题: ```bash sudo apt --fix-broken install ``` 2. **清理旧配置(谨慎操作)** 若问题未解决,尝试删除 `udisks2` 的残留配置(操作前建议备份): ```bash sudo rm -rf /etc/udisks2/ sudo apt purge udisks2 sudo apt install udisks2 ``` 3. **更新系统** 确保系统软件包为最新版本: ```bash sudo apt update && sudo apt full-upgrade ``` 4. **手动检查库文件路径** 确认库文件已正确安装: ```bash ls /usr/lib/x86_64-linux-gnu/libbd_mdraid.so.2 ``` 如果文件存在但问题仍存在,可能需要重建动态链接库缓存: ```bash sudo ldconfig ``` --- ### **附加说明** - **`libblockdev-mdraid2` 的作用** 该软件包提供对 Linux 软件 RAID(如 `mdadm`)的支持。缺少它会导致 `udisksd` 无法管理 RAID 设备。 - **适用系统版本** 上述方法适用于 Ubuntu 20.04/22.04/24.04 等主流版本。 --- 通过以上步骤,可修复 `udisksd` 加载 `mdraid` 模块时的库缺失问题。如果仍有异常,建议检查系统日志(`journalctl -u udisks2.service`)或查阅 [Ubuntu 社区支持](https://askubuntu.com/)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式专业户

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值