【发布时间】:2020-02-04 02:52:57
【问题描述】:
需要一些关于在 Windows 上启用 libvpx 编译 ffmpeg 的信息。这是我遵循的步骤和我得到的错误
- 在windows上安装了msys2并安装了所需的包(git、pkg-config、gcc编译器等)
- 从“https://github.com/webmproject/libvpx.git”克隆 libvpx 并创建了 vs15 解决方案(命令:./configure --disable-vp8 --disable-vp9-encoder --target=x86_64-win64-vs15)
- 打开 vpx.sln 并成功编译 vpxmd.lib(创建了一个 vpx.pc 文件并将包含和库保存在适当的位置)
- 从https://github.com/FFmpeg/FFmpeg.git 和 msys2 克隆了 ffmpeg,我尝试构建它(命令:./configure --enable-asm --enable-yasm --arch=x86_64 --target-os=win64 --disable-encoders - -disable-muxers --enable-libvpx --disable-doc --disable-ffplay --disable-ffprobe --disable-ffmpeg --enable-shared --disable-static --disable-bzlib --disable-libopenjpeg - -disable-iconv --disable-zlib --prefix=/d/Stadia/FFmpeg --toolchain=msvc --disable-debug)
ffmpeg 可以很好地构建一个库,但它不包括 libvpx。 config.log 如下:
./ffconf.NEscC1Fm/test.c(4): 警告 C4311: 'type cast': 指针 从 'vpx_codec_iface_t *(__cdecl *)(void)' 到 'long' 的截断
./compat/windows/mslink /usr/local/lib -nologo -I/usr/local/include -libpath:/usr/local/lib -out:./ffconf.NEscC1Fm/test.exe ./ffconf.NEscC1Fm/test.o vpx.lib
LINK:警告 LNK4044:无法识别的选项 '/IC:/msys64/usr/local/include';忽略 lib.obj(vp8_vp8_dx_iface.obj) : 发现 MSIL .netmodule 或使用 /GL 编译的模块;重启链接 与 /LTCG;将 /LTCG 添加到链接命令行以改进链接器 性能
LINK:警告 LNK4044:无法识别的选项 '/IC:/msys64/usr/local/include';忽略
LINK : 警告 LNK4098: defaultlib 'MSVCRT' 与使用冲突 其他库;使用 /NODEFAULTLIB:library lib.obj(vpx_mem_vpx_mem.obj) : 错误 LNK2001:未解析的外部符号 __imp_malloc lib.obj(vp8_decoder_threading.obj):错误 LNK2001:未解决 外部符号 __imp__beginthreadex lib.obj(vp8_decoder_decodeframe.obj):错误 LNK2001:未解决 外部符号 __imp_fopen ./ffconf.NEscC1Fm/test.exe:致命错误 LNK1120:3 个未解决的外部因素
我的msys2安装在C:/msys2/和/home/对应 C/msys2/home 如果我使用 --extra-ldflags="-L/home/usr/local/lib" ,链接器 将其视为 /LC:/msys2/usr/local/lib 并因此失败。
这里非常感谢您提供分步指南
【问题讨论】: