我最近得到了一个 raspberry pi 5,我正在运行最新的 64 位 raspbian 操作系统,它基于 Debian 12。我现在正在尝试安装 Retroarch,并且我正在使用 PiKISS 应用程序。安装后,系统提示我运行它,当我按 Enter 时,它会给出错误“/usr/local/bin/retroarch:加载共享库时出错:libavcodec.so.58:无法打开共享对象文件:没有这样的文件或目录”我很困惑,我尝试安装其他应用程序,例如steam,但遇到了类似的问题。这是一个干净的安装,我之前安装的唯一的东西是 box64 和 box86。任何帮助将不胜感激!!
我尝试过研究这个问题,虽然我发现其他人遇到了类似的问题,但它并没有帮助我解决我的问题,我感到非常失落,而且我对这一切仍然很陌生。
有点旧,但我只是使用相同的程序遇到了同样的问题。 发生这种情况是因为您的 ffmpeg 比 Retroarch 所需的新。
修复此问题的一种方法是降级:
您可以在此处查看版本:https://ffmpeg.org/download.html
libavutil 56. 70.100
libavcodec 58.134.100
libavformat 58. 76.100
libavdevice 58. 13.100
libavfilter 7.110.100
libswscale 5. 9.100
libswresample 3. 9.100
libpostproc 55. 9.100
这是我们想要的 4.4 版本。
所以如果以后有更新,而你,未来的读者,因为retroarch更新而面临相同的版本问题,你可以同样在网站中检查当前版本。
现在,我让它在我这边工作,但我做了很多事情......我不确定到底是什么让它工作,所以我将得到从最新到最早的修复。
遵循 Retroarch 的安装指南,特别是关于依赖项。
https://docs.libretro.com/guides/rpi/
我安装了以下内容:
sudo apt install -y build-essential libudev-dev libegl-dev libgles-dev libx11-xcb-dev
sudo apt install -y libvulkan-dev mesa-vulkan-drivers
还有 KMS,需要针对特定版本进行一些更改:
sudo apt install libavcodec-4-dev \
libavdevice-4-dev \
libavformat-4-dev \
libdrm-common \
libdrm-dev \
libdrm2 \
libegl1-mesa-dev \
libfreetype6-dev \
libgbm-dev \
libgbm-dev \
libgbm1 \
libgles2 \
libgles2-mesa \
libgles2-mesa-dev \
libsdl-image1.2-dev \
libsdl2-dev \
libswresample-4-dev \
libswscale-4-dev\
libv4l-dev\
libxkbcommon-dev\
libxml2-dev\
yasm\
zlib1g-dev\
libavutil56
(缺少
libavresample4
,因为版本控制有冲突,但最终仍然有效)
我尝试运行 Retroarch,它在最后一个之后起作用了。
如果它对您不起作用,或者找不到软件包...
添加
deb-multimedia
PPA
https://www.deb-multimedia.org/
在
/etc/apt/sources.list
内,或在 /etc/apt/sources.list.d
内的新 .list 文件中
deb https://www.deb-multimedia.org bookworm main non-free
deb https://www.deb-multimedia.org bookworm-backports main
然后执行通常的
sudo apt update
,并尝试再次安装,尽管它包含比我最初预期的更新的版本...
这是我最希望起作用的方法,但它似乎没有将
so.X
文件添加到库中......
https://pimylifeup.com/compiling-ffmpeg-raspberry-pi/
只需检查它是否正在尝试编译版本 5.0,因此您必须在版本 4.4 的最后一个命令中更改它。
就是这样。
我见过的“解决方案”之一是在缺少的库的名称下创建一个符号链接,但 Retroarch 不会接受这一点,所以不要浪费时间。