将VLC构建链接到ffmpeg构建库

时间:2016-11-24 07:12:34

标签: c++ c ffmpeg linker vlc

尝试构建VLC时收到以下错误消息:

checking for mad_bit_init in -lmad... yes checking for MPG123... yes checking for libavutil variant... libav checking for GST_APP... yes checking for GST_VIDEO... yes checking for AVCODEC... no configure: error: Requested 'libavcodec >= 57.16.0' but version of libavcodec is 56.1.0. Pass --disable-avcodec to ignore this error.

我正在运行命令(从下面的链接开始配置的第一步,我做了contrib方法并构建了其他所有内容): ./configure

所以让我们明白一点:我错过了最新版本的libavcodec(v57)。使用--disable-avcodec不是一个可行的解决方案。快速apt-file search libavcodec我看到debian / jessie发布的最新版本是libavcodec56,而不是57.我也注意到libavcodec57可以在这里用ffmpeg进行安装https://ffmpeg.org/download.html

我实际上还需要从源代码构建ffmpeg。所以我这样做了,使用链接到下面的指南,顺利完成了依赖关系,没有太多麻烦。

所以这是我的问题:在构建并执行ffmpeg的make安装之后,尽管已经新编译了最新的libavcodec,但仍然会出现上述错误。

所以我的问题是:因为我使用了该指南,所以在构建vlc时我仍然会收到错误。我看到lib存在她:/root/ffmpeg_build/lib/libavcodec.a,我认为make install会把它放在需要的地方。 在编译vlc时是否可以设置其他编译标志,将其指向lib目录以查找libavcodec?

ffmpeg build:https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu vlc build:https://wiki.videolan.org/UnixCompile/

更新:试过这个,仍然收到错误消息:PKG_CONFIG_PATH="/root/ffmpeg_build/lib:$PKG_CONFIG_PATH" LD_LIBRARY_PATH="/root/ffmpeg_build/lib:$LD_LIBRARY_PATH" ./configure

UPDATE2:试过这个,仍然收到错误消息:./configure --libdir="/root/ffmpeg_build/lib:$LIBDIR"

UPDATE3:我尝试将我的ffmpeg库合并到我的vlc库中,可能会让事情变得更糟。我的ffmpeg libs住在这里:/ root / ffmpeg_build / lib 我的vlc构建(contrib构建)也在这里:/ opt / vlc /

所以我将它们与我现有的vlc contrib lib合并: cp /root/ffmpeg_build/lib/* /opt/vlc/contrib/x86_64-linux-gnu/lib/ cp /root/ffmpeg_build/lib/pkgconfig/* /opt/vlc/contrib/x86_64-linux-gnu/lib/pkgconfig/

然后运行configure: ./configure --with-contrib=contrib/x86_64-linux-gnu

最终有效,但现在我在尝试制作时出现此错误:

现在我收到错误: /usr/bin/ld: /opt/vlc/contrib/x86_64-linux-gnu/lib/libavformat.a(allformats.o): relocation R_X86_64_32 against `ff_a64_muxer' can not be used when making a shared object; recompile with -fPIC

0 个答案:

没有答案