无法正常安装 32 位 gstreamer-ffmpeg,库找不到其他 32 位库

无法正常安装 32 位 gstreamer-ffmpeg,库找不到其他 32 位库

我使用的是 Ubuntu 12.04 64 位,我试图让一个游戏(GTA SA)在 wine 中运行,但它总是崩溃。阅读错误日志后,我似乎需要一些 32 位版本的 gstreamer,可能是为了播放介绍视频。我已经有了ia32-libs,因为我在某处读过,我需要它才能运行 32 位软件。我首先尝试:

sudo apt-get install gstreamer0.10-ffmpeg:i386

返回:

 gstreamer0.10-ffmpeg:i386 : Depends: libavcodec53:i386 (>= 4:0.7.3-1) but it is not going to be installed or
                                      libavcodec-extra-53:i386 (>= 4:0.7.3-1) but it is not going to be installed

它还依赖于 libavformat、libpostproc 和 libswscale,并且有大约相同的错误。所以我继续寻找,发现了一个不错的工具,getlibs,它允许你安装32位库。我认为它只是将它们放在/usr/lib32目录中,这可能不是最好的方法,但我还是尝试了。

所以我用 getlibs 安装了 wine 抱怨的 32 位库。现在我遇到了不同的错误,基本上 32 位库正在引用它现在找不到的其他库。例如,错误之一是:

Failed to load plugin '/usr/lib32/gstreamer-0.10/libgstffmpeg.so': libavformat.so.53: cannot open shared object file: No such file or directory

所以我最初的想法是正确的,因为它现在使用的是 32 位版本。现在我试图用 ldd 来弄清楚该库在哪里引用了其他库:

# This one is fine
ldd /usr/lib/gstreamer-0.10/libgstffmpeg.so | grep avformat
libavformat.so.53 => /usr/lib/x86_64-linux-gnu/libavformat.so.53 (0x00007f8314181000)

# This one isn't
ldd /usr/lib32/gstreamer-0.10/libgstffmpeg.so | grep avformat
libavformat.so.53 => not found

所以确实,libgstffmpeg.so 找不到正确的 libavformat.so。我尝试再次使用 getlibs 安装 32 位版本的 libavformat,这将其放置在/usr/lib32/i386-linux-gnu/libavformat.so.但 ldd 仍然告诉我它找不到 libavformat。然后我尝试在同一目录中创建一个符号链接,但将其命名libavformat.so.53,甚至创建了一个指向“/usr/lib/i386-linux-gnu/libavformat.so.53”的符号链接,但两者都给了我相同的错误。

现在我确信这确实不是正确的方法,但我不知道正确的方法。那么正确的方法是什么,或者 gstreamer0.10-ffmpeg 根本没有 32 位或多库支持?我怎样才能找到目录是什么,libgstffmpeg(或我猜的任何库)在其中检查它引用的32位库?

答案1

尝试:

ldconfig -p | grep lib32

man ldconfig如果您没有看到任何输出,这是因为链接器缓存(阅读, 以及有关开关的第一段-p)没有引用 /usr/lib32。我检查了 ubuntu 12.04 系统,默认情况下不存在该系统。您可以将其添加到:/etc/ld.so.conf.d/libc.conf其中可能只包含/usr/local/lib.只需运行ldconfig,然后运行上面的 -p 命令。你应该在 /usr/lib32 中看到这些内容;现在再次在 32 位 gstreamer lib 上尝试 ldd。

相关内容