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

十念  论坛元老 | 2024-11-11 12:21:17 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1625|帖子 1625|积分 4875

程序在linux下运行时,一样寻常从 /lib64 目次下加载依赖的库文件,如xxx.so.
有时候,体系里没有这些库,也不想从体系目次下加载,怎么办呢?
看下面的调整过程。
利用的源代码是 ffmpeg-6.1.tar.xz
解压后,进入到ffmpeg-6.1
  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.html
https://www.technovelty.org/linux/exploring-origin.html

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

十念

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表