尽管文件存在,但无法打开共享 libasound 库

尽管文件存在,但无法打开共享 libasound 库

当我试图重温童年时光并在 Linux 上再次玩席德·梅尔的半人马座 Alpha Centauri 时(几年前我成功做到了这一点),我遇到了一个顽固的错误。Loki 端口安装正常,使用提供的库和加载脚本玩游戏时没有崩溃或视觉问题,但没有声音。从命令行加载时,游戏会抛出以下错误:

ALSA lib conf.c:3314:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM default

我使用的是 Mint 17 (Ubuntu 14.04),因此运行 PulseAudio 来获取声音。我想知道的是 1) 此错误的根源是什么以及 2) 如何修复它?

最奇怪的是,就在 24 小时前,游戏还运行正常声音;仅当我重新启动系统时,游戏声音才会停止工作(其他应用程序的声音工作正常),我无法在安装过程中或安装后重现可能导致这种情况的任何步骤。

我安装了 osspd、32 位 libasound2 库和 64 位 libasound2 库,并且libasound_module_conf_pulse.so /usr/lib/i386-linux-gnu/alsa-lib确实在和下都存在/usr/lib/x_86_64-linux-gnu/alsa-lib。我用来加载游戏以及声音工作的脚本如下:

#!/bin/bash
export LD_LIBRARY_PATH=/opt/AlphaCentauri/Loki_Compat
$LD_LIBRARY_PATH/ld-linux.so.2 /opt/AlphaCentauri/smacx.dynamic

如果没有 中的兼容库Loki_Compat,游戏根本无法运行。我尝试将 的完整路径添加到libasound_module_conf_pulse.so以及LD_LIBRARY_PATHLD_PRELOAD尝试重新安装游戏和相关库,甚至尝试对 中的困难库进行符号链接Loki_Compat以确保可以找到它,但都无济于事。

虽然我见过多次提及Cannot open shared library ...此类错误(主要是在不同的程序中)通过Google,到目前为止我还没有找到令人满意的解决方案。我本想把这个问题归结为一个无法解决的问题(因为从现在到我上次玩游戏时出现了问题),但上周末我安装游戏时,声音奇迹般地开箱即用。

答案1

我在 Ubuntu 14.04 64bit 上遇到了类似的问题(也许,它发生在我手动安装了特定版本的alsa-base包之后,因为当我尝试在该主机上从源代码构建 Java Hotspot 和 JVM 时它在某种程度上是必需的)。

我还检查了“strace”输出,发现只安装了一个符号链接/usr/lib/x86_64-linux-gnu/libasound_module_conf_pulse.so,解决了我的问题。可能是你把符号链接安装在了错误的位置。我的具体命令是:

cd /usr/lib/x86_64-linux-gnu/
sudo ln -s alsa-lib/libasound_module_conf_pulse.so libasound_module_conf_pulse.so

答案2

libasound_module_conf_pulse.so我在使用 pygame.midi 时也遇到了问题

sudo apt install --reinstall alsa-utils alsa-tools

解决了这个问题。希望它能帮到别人。我正在使用 Debian Buster。

答案3

首先创建Error中给出的调用环境:

就我而言: ALSA lib conf.c:3725:(snd_config_hooks_call) 无法打开共享库 libasound_module_conf_pulse.so (/lib/i386-linux-gnu/alsa-lib/libasound_module_conf_pulse*.so: 无法打开共享对象文件:没有此文件或目录) ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) 未知的 PCM 默认值

运行以下命令:

sudo mkdir /usr/lib/i386-linux-gnu/alsa-lib/
cd /usr/lib/i386-linux-gnu/alsa-lib/
sudo dpkg --add-architecture i386
sudo apt-get install libasound2-plugins:i386

相关内容