尝试构建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