我需要使用MSVC 2017编译器在Windows 10上编译FFmpeg。我跟随了一些指南:
我安装了当前稳定版的MSYS,修复了link.exe并使用了PATH环境,安装了make diffutils gcc pkg-config
并下载了c99-to-c89,nasm和inttypes.h
我认为我的环境现在已经正确设置了,我从MSVC命令提示符运行了MSYS shell,并且可以访问所有内容。
$ which cl
/c/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.12.25827/bin/HostX64/x64/cl
$ which link
/c/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.12.25827/bin/HostX64/x64/link
$ which yasm
/home/Antoine/bin/yasm
$ which c99conv
/home/Antoine/bin/c99conv
$ which c99wrap
/home/Antoine/bin/c99wrap
现在我配置构建
$ ./configure --toolchain=msvc
install prefix /usr/local
source path .
C compiler cl
C library msvcrt
ARCH x86 (generic)
big-endian no
runtime cpu detection yes
standalone assembly yes
x86 assembler nasm
MMX enabled yes
MMXEXT enabled yes
3DNow! enabled yes
3DNow! extended enabled yes
SSE enabled yes
SSSE3 enabled yes
AESNI enabled yes
AVX enabled yes
AVX2 enabled yes
XOP enabled yes
FMA3 enabled yes
FMA4 enabled yes
i686 features enabled yes
CMOV is fast yes
EBX available no
EBP available no
debug symbols yes
strip symbols no
optimize for size no
optimizations yes
static yes
shared no
postprocessing support no
network support yes
threading support w32threads
safe bitstream reader yes
texi2html enabled no
perl enabled no
pod2man enabled no
makeinfo enabled no
makeinfo supports HTML no
External libraries:
schannel xlib
External libraries providing hardware acceleration:
cuda cuvid d3d11va dxva2 nvenc
Libraries:
avcodec avdevice avfilter avformat avutil swresample swscale
Programs:
ffmpeg ffprobe
[...]
Hundreds of modules, library, etc.
[...]
License: LGPL version 2.1 or later
Creating configuration files ...
config.h is unchanged
config.asm is unchanged
libavutil/avconfig.h is unchanged
libavcodec/bsf_list.c is unchanged
libavformat/protocol_list.c is unchanged
但是当我运行make
时,它会很快停止
$ make
Makefile:47: la cible « qt-faststart » ne correspond pas au motif de cible
Makefile:47: la cible « trasher » ne correspond pas au motif de cible
Makefile:47: la cible « uncoded_frame » ne correspond pas au motif de cible
Makefile:91: ffbuild/library.mak: No such file or directory
make: *** Aucune règle pour fabriquer la cible « ffbuild/library.mak ». Arrêt.
对不起法语措辞,我不知道如何告诉MSVC用英语打印输出。基本上,错误意味着:
Makefile:47: target « qt-faststart » doesn't match the target pattern
make: *** No rule to make target « ffbuild/library.mak ». Stopped.
附注:
$ tree ffbuild
ffbuild
├── config.fate
├── config.log
├── config.mak
└── config.sh
没错,library.mak没有生成ffbuild,但我不知道为什么,并且configure脚本没有输出任何错误信息......
有人能帮助我找出我做错了什么吗?
修改
make distclean
无效
$ make distclean
Makefile:47: la cible « qt-faststart » ne correspond pas au motif de cible
Makefile:47: la cible « trasher » ne correspond pas au motif de cible
Makefile:47: la cible « uncoded_frame » ne correspond pas au motif de cible
Makefile:91: ffbuild/library.mak: No such file or directory
make: *** Aucune règle pour fabriquer la cible « ffbuild/library.mak ». Arrêt.
答案 0 :(得分:1)
从github重新下载源代码为zip包后,我终于成功在Windows上编译了FFmpeg。我之前从ffmpeg.org下载了源代码,但存档(.tar.bz2)可能已损坏和/或某些时候提取失败。