欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > 如何让ffmpeg运行时从当前目录加载库,而不是从/lib64

如何让ffmpeg运行时从当前目录加载库,而不是从/lib64

2025/4/19 8:59:26 来源:https://blog.csdn.net/taoshengyijiu20008/article/details/143600135  浏览:    关键词:如何让ffmpeg运行时从当前目录加载库,而不是从/lib64

程序在linux下运行时,一般从 /lib64 目录下加载依赖的库文件,如xxx.so.

有时候,系统里没有这些库,也不想从系统目录下加载,怎么办呢?

看下面的调整过程。

使用的源代码是 ffmpeg-6.1.tar.xz

解压后,进入到ffmpeg-6.1

./configure  --enable-libmp3lame  --enable-rpath  --prefix=/usr/local/ffmpeg

注意:这里的--enable-rpath 非常重要,只有加上这个选项,后面才能指定加载库的路径。

           这里,也不需要 --libdir='$ORIGIN' 这个参数。

执行完上面的命令,会生成:ffmpeg-6.1/ffbuild/config.mak  文件,

主要就是修改这个文件了。

把 LDEXEFLAGS= -Wl,-rpath,/usr/local/ffmpeg/lib  改成:LDEXEFLAGS= -Wl,-rpath,'$$ORIGIN'

 LDSOFLAGS= -Wl,-rpath,/usr/local/ffmpeg/lib   改成:LDSOFLAGS= -Wl,-rpath,'$$ORIGIN'

注意:这里ORIGIN 要加单引号,且前面是2个$符号

   

  • 使用 $ORIGIN: 当你设置为 $ORIGIN 时,表示你希望库路径相对于可执行文件的位置。这在部署时非常有用,因为它允许可执行文件和库文件在同一目录结构中移动,而无需修改路径。

保存,然后make 即可。

最后,生成的ffmpeg 或者ffprobe 就可以从自己当前所在的目录查找库文件了,

比如libxcb.so.1 等。

关于$ORIGIN,请看这里

technovelty.org/linux/exploring-origin.htmlicon-default.png?t=O83Ahttps://www.technovelty.org/linux/exploring-origin.html

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词