我在虚拟机中运行 Ubuntu 64 位系统。我想对 VLC 媒体播放器进行模糊测试,因此我获取了 tar 文件,构建了依赖项并尝试使用以下行进行配置:
./configure CC="afl-gcc" CXX="afl-g++" --disable-shared; make
但是,这会遇到错误:
请求 libavcodec >= 57.37.100 但 libavcodec 版本为 56.60.100
除了从 contrib 构建一个新的解决方案之外,还有其他解决方法吗?
答案1
您有多种选择:
- 重建一个最近的
ffmpeg
源码包来获取libavcodec57
& co.; - 升级到 Ubuntu 16.10,其中有
libavcodec57
; - 遵循 VLC 包方法,即嵌入适当的版本
fmmpeg
并使用它。
我推荐后一种方法;开始:
sudo apt-get install devscripts
dget http://httpredir.debian.org/debian/pool/main/v/vlc/vlc_2.2.4-8.dsc
cd vlc-2.2.4
CC=afl-gcc CXX=afl-g++ dpkg-buildpackage -us -uc
这将告诉您需要安装哪些其他软件包(如果有)。如果您不想使用dpkg-buildpackage
,至少请参阅debian/rules
以获得相关配置选项。
答案2
我和你有同样的问题。最后我发现vlc源代码版本错误。注意你的 git checkout 命令。真的是vlc 2.2.0版本吗?就我而言,我检查了默认(最新)版本,它是 3.0.0,仍在开发中,依赖于 libavcodec 57。
答案3
重建一个最近的ffmpeg源码包以获得libavcodec57等
这可能是最快的方法(见下文)。如果需要,请安装 nasm yasm。