linux - 是否在/usr/local/lib 中搜索共享库?

标签 linux linker ffmpeg shared-libraries

/usr/local/lib 是否已搜索共享库?我有这个错误:

[Leo@chessman ~]$ whereis ffmpeg
ffmpeg: /usr/local/bin/ffmpeg
[Leo@chessman ~]$ ffmpeg
ffmpeg: error while loading shared libraries: libavcore.so.0: cannot open shared object file: No such file or directory
[Leo@chessman ~]$ ls /usr/local/lib/libav*
/usr/local/lib/libavcodec.a            /usr/local/lib/libavfilter.a
/usr/local/lib/libavcodec.so           /usr/local/lib/libavfilter.so
/usr/local/lib/libavcodec.so.52        /usr/local/lib/libavfilter.so.1
/usr/local/lib/libavcodec.so.52.108.0  /usr/local/lib/libavfilter.so.1.74.0
/usr/local/lib/libavcore.a             /usr/local/lib/libavformat.a
/usr/local/lib/libavcore.so            /usr/local/lib/libavformat.so
/usr/local/lib/libavcore.so.0          /usr/local/lib/libavformat.so.52
/usr/local/lib/libavcore.so.0.16.1     /usr/local/lib/libavformat.so.52.94.0
/usr/local/lib/libavdevice.a           /usr/local/lib/libavutil.a
/usr/local/lib/libavdevice.so          /usr/local/lib/libavutil.so
/usr/local/lib/libavdevice.so.52       /usr/local/lib/libavutil.so.50
/usr/local/lib/libavdevice.so.52.2.3   /usr/local/lib/libavutil.so.50.36.0
[Leo@chessman ~]$ 

最佳答案

确保您的 LD_LIBRARY_PATH 设置为包含您要搜索的所有目录,然后再次对其进行测试。

您可以通过以下方式快速测试:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib ffmpeg

这将只为该调用设置它。

或者,您可以编辑包含搜索的默认目录的 /etc/ld.so.conf。某些 Linux 发行版可能不会在该文件中包含 /usr/local/lib

请注意,您可能还需要通过运行 ldconfig 更新缓存 /etc/ld.so.cache(以 root 身份或使用 sudo)。

关于linux - 是否在/usr/local/lib 中搜索共享库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4743233/

相关文章:

linux - SMP 中的 CPU 停顿

linux - 在 Ubuntu 上暂时禁用 Gold Linker

objective-c - 如何让 Scripting Bridge 在运行时生成 Objective-C 类?

c++ - 在我从旧版 DirectX SDK 更改为 Windows SDK(Visual Studio 2015)后,链接器一直在提示)

ffmpeg 音频转换失真 - 半速率

linux - Docker COPY 命令授予 777 对复制文件的访问权限

linux - 为什么一个剥离的二进制文件在反汇编文件中仍然可以有库调用信息?

java - 在不知道文件持续时间的情况下分割视频

ruby-on-rails - IO.popen 和 ffmpeg 出错

java - 如何使用runtime.getruntime().exec知道天气服务器已经启动